javascript - 如何为我的猜谜游戏实现一个随机数,直到用户猜到它才会不断变化?
问题描述
每次我单击“确认”时,它都会生成一个新的随机数,因此您实际上无法猜到。以及如何显示用户尝试猜测数字的次数?请帮忙,因为我已经坚持了几个小时。谢谢!
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
是用户尝试尝试,将其显示在视图中。
推荐阅读
- android - I/Ads:广告加载失败:3 - Android
- c++ - 制作一个简单的 Log 类
- php - 如何使用单个查询显示多个表
- python - 如何在 Python 上剥离字符串?
- python - 按特定列对记录进行分组并插入缺失值
- python - 转换后的视觉 hello world python
- spring-boot - SpringData MongoDB @TypeAlias 升级后停止工作
- python-3.x - 为什么在使用多处理时从视频块中读取?
- javascript - 为什么 React-form-hook 的 console.log(errors) 在首次提交时不起作用?
- python - 如何使用python,opencv从粘贴在相机输入上的图像中删除背景