[英]How do I implement a random number for my guessing game that doesn't keep changing until the user guesses it?
每次我单击“确认”时,它都会生成一个新的随机数,因此您实际上无法猜测它。 以及如何显示用户尝试猜测数字的尝试次数? 请帮忙,因为我已经坚持了几个小时。 谢谢!
const Home = () => {
const [enteredValue, setEnteredValue] = useState("");
const [confirmed, setConfirmed] = useState(false);
const [selectedNumber, setSelectedNumber] = useState();
const input = inputText => {
setEnteredValue(inputText.replace(/[^0-9]/g, ""));
};
const reset = () => {
setEnteredValue("");
setConfirmed(false);
};
const confirm = () => {
const chosenNum = parseInt(enteredValue);
setConfirmed(true);
setSelectedNumber(chosenNum);
setEnteredValue("");
let x = Math.floor(Math.random() * 100) + 1;
let count = 0;
if (!enteredValue) {
Alert.alert("Please Enter a Number");
} else if (chosenNum > x) {
Alert.alert("Guess Lower");
count+=1
} else if (chosenNum < x) {
Alert.alert("Guess Higher");
count+=1
} else if (chosenNum == x) {
Alert.alert("You Guessed Correctly");
}
};
let confirmedOutput;
if (confirmed) {
confirmedOutput = (
<View>
<Text style={styles.output}>Chosen Number: {selectedNumber}</Text>
<Text>Tries: </Text>
</View>
);
}
您正在confirm
函数中生成 x 数字。 所以每次用户猜测(正确与否)x 都会改变。
你应该带这个:
let x = Math.floor(Math.random() * 100) + 1;
let count = 0;
出函数,在游戏开始时的某个地方,它会被调用。
当用户猜测正确时,重新生成新的 x 并重置计数:
// ...
} else if (chosenNum == x) {
Alert.alert("You Guessed Correctly");
x = Math.floor(Math.random() * 100) + 1;
count = 0;
}
count
是用户尝试尝试,在视图中显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.