如何为我的猜谜游戏实现一个在用户猜到之前不会不断变化的随机数?



每次我点击"确认"时,它都会生成一个新的随机数,所以你实际上无法猜测它。如何显示用户尝试猜测数字的尝试次数?请帮忙,因为我已经被困在这个上面几个小时了。谢谢!

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是用户尝试试探,将其显示在视图中。

相关内容

最新更新