IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 原生js,通过面向对象的方式,代码实现一个21点数的游戏。 -> 正文阅读

[JavaScript知识库]原生js,通过面向对象的方式,代码实现一个21点数的游戏。

游戏规则是,开局,系统会先问你玩不玩,如果选择了1,就表示要玩,这时候,系统会随机,生成一个1到21之间的数字,你每次都会随机抽取一个1到21之间的数字,重复抽取,则,抽到的数字会累加,这时候系统会问你抽不抽号码,你如果一直选择抽取,数字,也会累加,如果,你一直抽取,数字累加到大于21过后,就直接判定你自爆了,你输了,系统赢了,你也可以选择,在抽取到一定时候,手动停止,这时候,系统就会,把你抽到的数字总和,和系统生成的数字,比较,谁的数值大,谁就获得胜利。数字相同,就获得平局(终端运行)


function randomNum(min, max = 0) {                       //随机函数   ,
    min > max ? [min, max] = [max, min] : "";
    return parseInt((max - min + 1) * Math.random() + min);
}
const rs = require("readline-sync");

//构建一个玩家类
class Player {
    constructor(num) {
        this.num = num;          //每次抽到的点数
        this.sum = 0;            //点数的总和
    }
}

//系统类
class Compter {
    constructor(point) {
        this.point = point;      //电脑的点数
    }
    main() {
        let star = null;               //决定玩不玩,默认为空
        console.log(`要不要玩? 1.玩  2.不玩`);               //开局问玩家玩不玩,输入1,玩就进入下一步,输入2,不玩的话,就直接结束代码
        let choice = rs.question();              //获取用户输入
        // if (choice == 1) {
        //     star = true;
        // } else {
        //     console.log(`不玩算了,拜拜6`);
        // }

        choice == 1 ? star = true : console.log(`不玩算了,拜拜6`);  //三目运算法               //判断,用户的输入,输入的如果是,上面声明的变量为true。,如果不是1,结束代码,并提示

        if (star) {                                         //判断上面的变量是不是为true。是true,就代表用户按得就是1
            console.log(`游戏马上开始`);            //提示用户开始后
            this.point = randomNum(10, 21);    //随机生成一个电脑的点数,并把随机的数字,赋值给类里面的点数

            let play = new Player();         //     这时,实例化一个玩家的类

            while (true) {                                //创建一个死循环
                console.log(`抽不抽牌?   1. 抽    2.不抽了`);             //提示用户,要不要抽取点数
                let cards = rs.question() - 0;                  //获取用户的输入

                switch (cards) {                       //判断用户的输入
                    case 1:                                 //如果输入的是1,就随机生成一个玩家的点数,并把随机的数字,赋值给类里面的点数
                        play.num = randomNum(1, 10);
                        play.sum += play.num;                 //并且类里面点数的总和,每次累加抽到的点数

                        if (play.sum > 21) {                  //如果用户一直抽取,就判断,玩家抽取的总和,如果大于21过后。
                            play.sum = 0;                   //玩家点数归零
                            console.log(`你自爆输了!系统获得胜利!`);    //并且直接判定,玩家自爆输了
                            return;                                               //然后结束函数。
                        }
                        // console.log(`玩家点数:${play.sum},系统点数${this.point}`);
                        break;
                    case 2:             //玩家如果,抽取不大于21,输入2,手动停止后,调用,系统类的另一个,方法,并且,把系统点数和玩家点数,当做实参,传到调用的方法的形参里面,去匹对判断,谁的大小,并执行后面代码,输出判断结果。
                        this.box(this.point, play.sum);
                        return;                   //结束函数。
                }
            }
        }
    }

    box(a, b) {                   //接收系统和玩家点数,进行判断。
        if (a > b) {
            console.log(`系统获得胜利`);
        } else if (a < b) {
            console.log(`恭喜你赢了`);
        } else {
            console.log(`打成平局了`);
        }
    }
}


new Compter().main();     //实例一个电脑对象,调用他的一个方法。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:49:56  更:2021-12-28 22:51:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:47:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码