-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
115 lines (99 loc) · 2.83 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
G A M B L E
Assortment of gambling games,
starting with one.
*/
const QS = (q) => document.querySelector(q);
const QSA = (q) => [...document.querySelectorAll(q)];
//Get DOM variables
const bankDisplay = QS("#bankDisplay");
let bankAmount = 1000;
let message = QS("#message");
const bet = QS("#betInput");
const bet_button = QS("#betButton");
const bet_half_button = QS("#betHalfButton");
const bet_all_button = QS("#betAllButton");
const BETTING_ODDS = 0.65;
updateBankDisplay()
//Set Event Listeners
bet_button.addEventListener("click", playBet)
window.addEventListener("keydown", function (event) {
if (event.key == "Enter") { playBet() }
})
bet_all_button.addEventListener("click",
() => {
bet.value = parseInt(bankAmount)
playBet()
}
)
bet_half_button.addEventListener("click",
() => {
bet.value = parseInt(Math.round(bankAmount)) / 2
playBet()
}
)
//TODO: Figure out timing inconsistency
function displayTempMessage(text, timeDelay = 1000) {
bet_button.style.visibility = "hidden"
message.innerText = text
setTimeout(() => {
message.innerText = "Place your bet."
message.style = "normal"
bet_button.style.visibility = "initial"
//message.style.color = "black"
}, timeDelay)
}
function updateBankDisplay() {
bankDisplay.innerText = `Bank: $${bankAmount.toLocaleString()}`
}
function resetBet() {
bet.setAttribute("max", `${bankAmount}`)
bet.value = 0
}
function isValidBet() {
return (bet.value <= bankAmount && bet.value > 0)
}
function playBet() {
if (bet.value <= 0) {
displayTempMessage("Bet greater than 0.", 1000)
return
}
if (bet.value > bankAmount) {
displayTempMessage(`You don't have $${bet.value}.`, 1000)
return
}
let currentBet = parseInt(bet.value)
let randNum = Math.random();
if (randNum <= BETTING_ODDS) {
displayTempMessage(`You won $${currentBet.toLocaleString()}!`)
bankAmount += currentBet
setTimeout(updateBankDisplay, 1000)
} else {
displayTempMessage(`You lost $${currentBet.toLocaleString()}`)
message.style.color = "red"
bankAmount -= currentBet
if (bankAmount <= 0) {
bankDisplay.innerText = "BANKRUPT!!!"
bankAmount = 50;
};
setTimeout(updateBankDisplay, 1000);
}
resetBet()
}
function testOdds(numOfTests) {
let numOfWins = 0
let numOfPlays = 0
let numOfLosses = 0
for (let i = 0; i < parseInt(numOfTests); i++) {
let randNum = Math.random()
numOfPlays++
randNum <= BETTING_ODDS ? numOfWins++ : numOfLosses++
}
let winPercentage = numOfWins / numOfPlays
console.log(`
Wins: ${numOfWins}
Losses: ${numOfLosses}
Plays: ${numOfPlays}
You won ${winPercentage.toFixed(2)} of the games.
`)
}