使用js开发一个猜数字的小游戏,其中有四个数字,四个数字的位置在开始游戏的时候是固定的。在开始游戏的时候,玩家可以输入十次 四个数字。在提交确认之后,如果数字的位置与值都正确,则归类1A,如果数字正确 但是位置不正确,则归类1B。然后看看有多少个1A,1B,最终加起来。示例:现有数字 1、2、3、4,这是正确的数字,如果玩家输入了 1、3、2、4,那么最终将会显示2A2B。如果玩家输入了 0、2、3、4,那么将会显示3A0B。
以下是一个简单的基于控制台的猜数字小游戏的实现,代码注释已经说明了详细步骤和实现方法:
// 定义正确的数字序列
const secretNumber = [1, 2, 3, 4];
// 获取用户输入数字序列的函数
function getUserInput() {
// 从控制台获取用户输入,并根据空格拆分成数字数组
const inputNums = prompt('请输入四个数字,用空格键分隔:').split(' ');
// 将输入数字序列转换为数字类型的数组
return inputNums.map(num => parseInt(num));
}
// 比较两个数字序列,返回1A和1B数量的数组
function compareNumbers(num1, num2) {
let A = 0, B = 0;
for (let i = 0; i < num1.length; i++) {
if (num1[i] === num2[i]) {
// 数字和位置都正确,1A数量加1
A++;
} else if (num2.indexOf(num1[i]) !== -1) {
// 数字正确,但位置不正确,1B数量加1
B++;
}
}
return [A, B];
}
// 主程序入口
function main() {
// 初始化A和B的数量为0
let A = 0, B = 0;
// 循环10次,获取用户输入并进行比较
for (let i = 1; i <= 10; i++) {
console.log('第' + i + '次猜测:');
// 获取用户输入的数字序列
const inputNums = getUserInput();
// 比较输入的数字序列和正确的数字序列,得出1A和1B的数量
const [a, b] = compareNumbers(inputNums, secretNumber);
// 显示1A和1B的数量
console.log(a + 'A' + b + 'B');
// 更新A和B的数量
A += a;
B += b;
// 如果全部数字的位置和值都正确,则游戏胜利,结束游戏
if (a === 4) {
console.log('恭喜你猜对了!答案是' + secretNumber.join(''));
return;
}
}
// 10次猜测都结束后,显示最终结果
console.log('很遗憾,你没有在规定的次数内猜中答案');
console.log('最终结果:' + A + 'A' + B + 'B');
}
// 调用主程序入口
main();
上述代码是一个比较简单的实现,对用户的输入没有进行特别严格的校验,实际开发中,还需要考虑输入非法字符、超时等异常情况的处理。