Spaces:
Running
Running
// Function to generate a random 4-digit number without repeating digits and without the first digit being 0 | |
function generateRandomNumber() { | |
let num = [Math.floor(Math.random() * 9) + 1]; | |
for (let i = 1; i < 4; i++) { | |
num.push(Math.floor(Math.random() * 10)); | |
} | |
return num; | |
} | |
// Generate the random number | |
let a; | |
do { | |
a = generateRandomNumber(); | |
} while (new Set(a).size !== 4); | |
// Main game loop | |
while (true) { | |
// Get user input | |
let x = prompt("Enter your guess (type 'exit' to quit):"); | |
// Check for exit command | |
if (x.toLowerCase() === 'exit') { | |
let confirmExit = confirm("Are you sure you want to exit the game?"); | |
if (confirmExit) { | |
alert("Thanks for playing! Exiting the game."); | |
break; | |
} else { | |
continue; | |
} | |
} | |
// Check for repeated digits or first digit being 0 | |
if (new Set(x).size !== 4 || x[0] === '0') { | |
alert("Invalid input. Please enter a 4-digit number with non-repeating digits and the first digit not being 0."); | |
continue; | |
} | |
let b = x.split('').map(Number); | |
let cow = 0; | |
let bull = 0; | |
// Check for bulls and cows | |
if (b.length > 4) { | |
alert("Invalid input. Please enter a 4-digit number with non-repeating digits and the first digit not being 0."); | |
continue; | |
} | |
for (let i = 0; i < 4; i++) { | |
if (b[i] === a[i]) { | |
cow += 1; | |
} else if (a.includes(b[i])) { | |
bull += 1; | |
} | |
} | |
// Provide feedback | |
alert("Bulls: " + bull + "\nCows: " + cow); | |
// Check if the player has won | |
if (cow === 4) { | |
alert("Congratulations! You won the game."); | |
break; | |
} | |
} |