# 写一段JS代码，生成4个随机数，实现猜数游戏

0
[已解决问题] 解决于 2019-04-19 20:36

0

0

Haisen'Blogs | 园豆：225 (菜鸟二级) | 2019-04-19 14:53
0

(function(){
let guessNumber = new Set();
function getNumber() {//随机生成四个不重复的小于10的整数，且第一个数大于0.
guessNumber.clear();
while (guessNumber.size < 4) {
let randomNumber = parseInt(Math.random() * 10);
if (guessNumber.size == 1 && randomNumber == 0) {
guessNumber.clear();
}

``}``

}

function getGuessInputNumber() {
while (true){
console.log("请输入你猜测的数：（是一个首位不为0的不重复4位数）");
let inputNum = rs.question();
let exchangeNum = Number(inputNum);
if (exchangeNum) {
if (exchangeNum >= 1000 && exchangeNum <= 9999) {
let t = exchangeNum;

``````            let geWei = (t % 10);t=parseInt(t/10);
let shiWei = (t % 10);t=parseInt(t/10);
let baiWei = (t % 10);t=parseInt(t/10);
let qiuanWei = (t % 10);t=parseInt(t/10);
let judge = new Set([qiuanWei,baiWei,shiWei,geWei]);
if (judge.size == 4) {
return [...judge];
} else {
console.log("输入的4位数字出现重复位！");
}
} else {
console.log("请输入一个4位数字！");
}
} else {
console.log("请输入一个数字！");
}

}``````

}

function judgeNumber(inputNum){//参数是一个数字，包含4位数的各个部分
let SystemNum = [...guessNumber];
let a=0,b=0;
for (let i = 0; i < inputNum.length; i++) {
let index = SystemNum.indexOf(inputNum[i]);//-1,0,1,2,3
if(index == i){
a++
}else if(index == -1){

``````    }else{
b++;
}
}
console.log(`\${a}A\${b}B`);
if(a==4){
return true;
}``````

}

function run(){//主体逻辑，一般命名为run或者main
getNumber();
for (let i = 0; i < 10; i++) {
if(judgeNumber(getGuessInputNumber())){
console.log("恭喜你，猜成功了，你一共使用了"+(i+1)+"次猜测机会!");
break;
}
console.log("请继续")
}
}

run();
})()

您需要登录以后才能回答，未注册用户请先注册