(function(){
let rs = require("readline-sync");
let guessNumber = new Set();
function getNumber() {//随机生成四个不重复的小于10的整数,且第一个数大于0.
    guessNumber.clear();
    while (guessNumber.size < 4) {
        let randomNumber = parseInt(Math.random() * 10);
        guessNumber.add(randomNumber);
        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();
})()

JS应用猜数游戏的更多相关文章

  1. 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)

    1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...

  2. usaco 猜数游戏

    Description 为了提高智商,锻炼思维能力,奶牛设计了一个猜数游戏.游戏开始前,贝西会在牛棚后面摆上N个数字.所有数字排成一条直线,按次序从1到N编号.每个数字在1到10^9之间,没有两个数字 ...

  3. (一)Python之猜数游戏

    猜数游戏由简如深的编码学习过程: 3次机会: print('------------------我爱鱼C工作室------------------')count=0while count < 3 ...

  4. 猜数游戏-flag的运用

    package my;import java.util.Scanner;public class MyJava {        public static void main(String[] ar ...

  5. Java课程设计——猜数游戏(201521123111 陈伟泽)

    Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入 ...

  6. JAVA课程设计 猜数游戏 团队

    团队名称,成员介绍 名称: 猜数游戏 成员: 网络1514 201521123086 周颖强 网络1514 201521123087蒋勃超 项目git地址 git.oschina.net/jbc113 ...

  7. BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】

    2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 260[Submit][Status ...

  8. 从scratch到python——猜数游戏

    ` 之前讲解了从scratch到python,基于python turtle库的实现,讲解了用scratch和python turtle绘图的实现,以及让小猫动起来和当角色被单击的例子. 本节课讲继续 ...

  9. VBS猜数游戏

    VBS 猜数游戏 2018-11-09  21:19:11 by xutao msgbox "The Swami" ,,"Game" msgbox " ...

随机推荐

  1. python之jieba库

    jieba “结巴”中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese tex ...

  2. Python学习:函数式编程(lambda, map() ,reduce() ,filter())

    1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...

  3. C语言的抽象与函数指针--思想(转)

    一.何为抽象? 从小到大,我们接触到的抽象,最熟悉的莫过于数学了.为什么这样说呢? 比如说,在小学的时候,老师总是拿了几个苹果来引诱我们:同学们,这里有几个苹果啊?于是我们流着口水一个个地数,一个苹果 ...

  4. ORA-00984: 列在此处不允许 SQL parse error location

      ORA-00984: 列在此处不允许SQL parse error location Oracle 插入数据的时候一直提示列在此处不允许.网上搜索答案说是类型不匹配的多,但我的错误确是一个低级错误 ...

  5. 廖雪峰Java9正则表达式-1正则表达式入门-2正则表达式匹配规则

    正则表达式的匹配规则: 从左到右按规则匹配 匹配规则及示例 可以匹配 不能匹配 "abc" "abc" 不能匹配:"ab", "A ...

  6. ReSharper 自动选中

    想让智能提示默认选中第一个,步骤:ReSharper->Options->如下图

  7. JAVA除法保留小数点后两位的两种方法

      1.(double) (Math.round(sd3*10000)/10000.0);  这样为保持4位 (double) (Math.round(sd3*100)/100.0); 这样为保持2位 ...

  8. 架构师技能图谱 V1.2

    系统架构能力 基本理论 扩展性设计 可用性设计 可靠性设计 一致性设计 负载均衡设计 过载保护设计 灾难恢复和备份 协议设计 二进制协议 文本协议 接入层架构设计 DNS 轮询 动静态分离 静态化 反 ...

  9. C# & JAVA:读写文件

    using System; using System.IO; using System.Text; namespace ConsoleApplication4 { class Program { pu ...

  10. Python中随机森林的实现与解释

    使用像Scikit-Learn这样的库,现在很容易在Python中实现数百种机器学习算法.这很容易,我们通常不需要任何关于模型如何工作的潜在知识来使用它.虽然不需要了解所有细节,但了解机器学习模型是如 ...