首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript心理游戏

Javascript心理游戏
EN

Stack Overflow用户
提问于 2017-11-02 22:14:14
回答 2查看 4.2K关注 0票数 2

我正在创建一个猜测游戏,并试图获得一个条件,该条件不允许我的用户选择相同的答案两次。我在想,不知何故,如果userGuess不等于我创建的空范围(用户猜测)中的一个项,那么什么都不会发生。我是javascript的新手,只是需要一些指导!

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en-us">
<head>
	<meta charset="utf-8">
	<title>Psychic Game</title>
</head>
<body>

	<div id="game">
		<h1> The Psychic Game </h1>
		<p>Guess what letter I'm thinking of!</p>
		<p>Wins:</p>
		<p>Losses:</p>
		<p>Guesses Left:</p>
		<p>Your Guesses so far:</p>
	</div>

	<script type="text/javascript">
		
		 var computerChoices = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",];

		 var wins = 0;
		 var losses = 0;
		 var numGuesses = 9;
		 var guessChoices = [];

		 document.onkeyup = function(event) {

		 	var userGuess = event.key;

		 	var computerGuess = computerChoices[Math.floor(Math.random() * computerChoices.length)];

		 	var options = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",];
		 	

			if (options.indexOf(userGuess) > -1) {

				if (userGuess === computerGuess) {
					wins++;
					numGuesses = 9;
					guessChoices = [];
				}

				if (userGuess != computerGuess) {
					numGuesses --;
					guessChoices.push(userGuess);
				}

				if (numGuesses === 0) {

				numGuesses = 9;
				losses ++;
				guessChoices = [];

				
			}

			var html = 
			"<h1> The Psychic Game </h1>" +
			"<p>Guess what letter I'm thinking of!</p>" +
			"<p>Wins: " + wins + "</p>" +
			"<p>Losses: " + losses + "</p>" +
			"<p>Guesses Left: " + numGuesses + "</p>" +
			"<p>Your Guesses so far: " + guessChoices.join(", ") + "</p>";

			document.querySelector("#game").innerHTML = html;

			
			}
		};

	</script>

</body>
</html>

EN

回答 2

Stack Overflow用户

发布于 2017-11-02 22:29:51

如果到目前为止已经创建了用户答案的数组

代码语言:javascript
复制
var userAnswers = [];

无论你什么时候回答,它都会检查之前的所有答案,看看是否匹配。

代码语言:javascript
复制
var isDuplicate = false;
for (var i = 0; i < userAnswers.length; i++) { //for every previous answer
    if (currentAnswer == userAnswers[i]) { //check if the current answer is a previous one
        isDuplicate = true;
        break; //exit loop
    }
}
if (!isDuplicate) { //different than previous
    userAnswers[userAnswers.length] = currentAnswer;
    //do other code here
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-02 22:41:31

我将使用array.includes方法来检查guessChoices是否包含用户的当前猜测,如下所示:

代码语言:javascript
复制
if (options.indexOf(userGuess) > -1) {
    if (userGuess === computerGuess) {
        wins++;
        numGuesses = 9;
        guessChoices = [];
    }
    else {
        if (guessChoices.includes(userGuess)) {
            // Code for duplicate guess
        }
        else {
            numGuesses--;
            guessChoices.push(userGuess);
        }
    }

    if (numGuesses === 0) {
        numGuesses = 9;
        losses++;
        guessChoices = [];
    }
}   

但是,您在每次按键时都会重新设置计算机的猜测,因此可能会产生一些意想不到的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47077439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档