繁体   English   中英

我如何为我的猜谜游戏实现一个随机数,直到用户猜到它才会不断变化?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM