我是Java的新手。
我决定用我已经教过的东西做一个小游戏。
规则很简单。我只需要console.log输入多少相同的值,并与计算机随机生成的值进行比较。
当我输入新值时,值的数量又回到0。
例如,计算机生成值“ 495”。
当我输入“ 501”时,计算机将显示结果“ 1 hello”,因为两个值的值均相同“ 5”。当我输入“ 154”时,计算机将显示结果“ 2 hello”,因为两者都具有值“ 5”和“ 4”。
这是代码
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>hello counting </title>
<link rel="stylesheet" href="./index.scss">
</head>
<body>
<div class="wrapper">
<h1>hello count</h1>
<form class="game-form">
<input type="text" name='game1' class='number-input'>
<input type="text" name='game2' class='number-input'>
<input type="text" name='game3' class='number-input'>
<button class="add">add</button>
</form>
<ul class="game-list"></ul>
</div>
</body>
<script src="./index.js"></script>
</html>
Javascript
const gameFormEl = document.querySelector(".game-form");
const gameListEl = document.querySelector(".game-list");
let gameArr = [];
gameFormEl.addEventListener("submit", e => {
addNum(
e.target.elements.game1.value,
e.target.elements.game2.value,
e.target.elements.game3.value
);
e.preventDefault();
e.target.reset();
});
// computer generated random number
const shuffle = () => {
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const container = [];
let container2 = [];
const arrLeng = arr.length;
for (let i = 0; i < arrLeng; i++) {
arrSplice = arr.splice(Math.floor(Math.random() * arr.length), 1);
container.push(Number(arrSplice));
}
// pick first three number that generates randomly
for (let j = 0; j < 3; j++) {
container2 = container2.concat(container[j]);
}
// because player input number is string format
return container2.join("");
};
shuffle();
const ranComNum = shuffle();
// players random input number
const addNum = (a, b, c) => {
let numAdd = a + b + c;
const gameItemEl = document.createElement("li");
gameItemEl.textContent = numAdd;
// pushing strings into numAdd array
gameArr.push(numAdd);
console.log(ranComNum);
// hello function
const hello = () => {
var helloCounter = 0;
for (let i = 0; i < 3; i++) {
for (let j = 0; j < gameArr.length; j++) {
for (let k = 0; k < 3; k++) {
if (ranComNum[i] === gameArr[j][k]) {
helloCounter++;
}
}
}
}
console.log(`${helloCounter} hello`);
};
hello()
};
除了一件事情,我几乎完成了代码。
我尝试过,但是我不知道如何在输入新值时对变量(helloCounter)再次从0开始计数。它保持以前计数的值,并在我输入新值时不断增加。
我应该在addNum函数之外创建新函数来计算问候吗?
答案 0 :(得分:0)
好的,首先将脚本移到正文中,它应该在正文的页脚中。
第二,最好随机生成数字:
Math.floor(Math.random() * (Max - Min +1) + Min);
所以
Math.floor(Math.random() * (999 - 100 + 1) + 100);
第三,您正在使用let,它是严格的重新声明,因此您不能重新声明该变量。尝试使用var helloCounter = 0