(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. C# winform使用combobox遍历文件夹内所有文件

    参考:https://www.cnblogs.com/hxh88/p/5814291.html 相关函数解析: 1.指定目录包含的文件和子目录 DirectoryInfo.GetFiles():获取目 ...

  2. 未处理AccessViolationException 异常

     在进行arcgis的GP操作时,当操作栅格图像的拼接时,报错: AccessViolationException: 尝试读取或写入受保护的内存 原以为可以通过try catch屏蔽掉错误,不至于程序 ...

  3. Nginx 配置location root 转自https://blog.csdn.net/rofth/article/details/78581617

    nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. 最基本的区别 ...

  4. JS将/Date(1446704778000)/转换成str

    JS将/Date(1446704778000)/转换成str:var dateStr = eval(ele.add_time.replace(/\/Date\((\d+)\)\//gi, " ...

  5. python之路——19

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 1.正则表达式 1.字符组 2.元字符 \w \d \s 匹配任意字母数字下划线 数字 空格 \W \ ...

  6. activity--常见属性总结

    15.Activit的几个重要属性总结? 12.onNewIntent()使用Tips?11.launchMode的属性介绍?及其常用的Intent Flag? ==== 15.Activit的几个重 ...

  7. 执行yum提示错误:rpmdb: BDB0113 Thread/process 424227/139826856310848 failed

    [问题]在执行yum安装或者其他命令时,有如下提示: [解决办法:重新构建rpm数据库] [root@cly ~]# cd /var/lib/rpm [root@cly rpm]# ls Basena ...

  8. 打造高效的工作环境 – SHELL 篇

    注:本文由雷俊(Javaer/Emacser)和我一起编辑,所以文章版权归雷俊与我共同所有,转载者必需注明出处和我们两位作者.原文最早发于酷壳微信公众号,后来我又做了一些修改,再发到博客这边. 程序员 ...

  9. 使用iptables基于MAC地址进行访控

    近日完成一台基于CentOS的SVN服务器配置,由于该服务器上的文件非常重要,仅部分用户需要访问,最后决定采用iptables来做访控,并且是根据MAC地址来限制,为了便于后期维护,防火墙的配置是通过 ...

  10. ring0与ring3通信方式

    修改自: https://blog.csdn.net/wzsy/article/details/54929726 控制码方式详解: https://www.cnblogs.com/lsh123/p/7 ...