(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. TCP连接异常:broken pipe 和EOF

    本文介绍3种TCP连接异常的情况. 1.server端没有启动,client尝试连接 ./client dial failed: dial tcp 127.0.0.1:8080: connect: c ...

  2. Spring boot中自动编译配置

    MAVEN自动编译配置 热部署功能 <dependency> <groupId>org.springframework.boot</groupId> <art ...

  3. aspnetcore 日志 serilog-aspnetcore

    serilog-aspnetcore https://github.com/serilog/serilog-aspnetcore public static void Main(string[] ar ...

  4. vivado源文件和仿真文件的建立

    目的:做一个3输入,1输出模块:其中只要有2个输入为1则输出为1: 1.打开vivado创建一个工程 2.选择保存路径和名称 3.选择创建rtl文件且勾选下面的选项 4.选择芯片如xc7a35tift ...

  5. Centos 7 LVM xfs文件系统修复

    Centos 7 LVM xfs文件系统修复 今天一大早,zabbix开始报警了,一台linux主机出现问题. 登陆控制台查看,报如下错误. 解决方法如下: ls -l /dev/mapper xfs ...

  6. 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型

    说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...

  7. Windows自定义运行命令

    1 打开注册表regedit 2 找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 3 新增项,自己运 ...

  8. goflyway简单使用

    前言 一个朋友最近新买的搬瓦工ip突然被强了,要等10周左右才能免费更换ip.而恰巧在网上看到了Goflyway 进阶教程:KCP 协议复活被墙IP 决定试一试.在vultr上临时搭建了测试环境,可能 ...

  9. android 显示大图模糊问题

    使用Glide 版本为4.8.0 /* */ Glide.with(context).asBitmap().load(url).into(new SimpleTarget<Bitmap>( ...

  10. com.jakewharton:butterknife:7.0.1' 点击无效

    需要加上 annotationProcessor 'com.jakewharton:butterknife:7.0.1' dependencies { compile 'com.jakewharton ...