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打怪兽(构造函数) -> 正文阅读

[JavaScript知识库]js打怪兽(构造函数)

运行结果:

下面是详细代码(复制粘贴即可):?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 案例:英雄打怪兽
        // 创建一个构造函数 (英雄和怪兽),攻击力(100)、防御力(50)、暴击率(随机一个数5的倍数 攻击力*2)
        // 伤害值 = 攻击力 - 防御力
        // 伤害值最小为1

        // 直到一方死掉为止  hp <= 0

        // 将整个游戏过程输出

        function CreateHero(name, attack, defence, hp, CritRate) {
            this.name = name;
            this.attack = attack;
            this.defence = defence;
            this.hp = hp;
            this.CritRate = CritRate;


            // 击打的方法 
            // hero.impact(boss)
            // boss.impact(hero)
            this.impact = function (name) {
                sh = this.attack - name.defence; //造成的伤害

                name.hp -= sh; //剩余的血量值

                bj = this.CritRate / 100; //指定暴击率

                // console.log(bj);
                bjl = Math.random(); //随机暴击率

                isBj = false; //初始化动态触发暴击为无暴击
                // console.log(sh);
            }
            console.log(`${this.name}\t攻击力:${this.attack}\t防御力:${this.defence}\t生命值:${this.hp}\t暴击率:${this.CritRate}`)

        }

        // 创建英雄和怪兽各自的构造函数
        var hero = new CreateHero('英雄', 300, 50, 1000, 30);
        console.log('VS');
        var boss = new CreateHero('怪兽', 200, 0, 800, 5);

        // 循环双方击打的次数
        while (true) {
            hero.impact(boss);
            heroSh = sh; //定义一个变量接收英雄造成的伤害
            boss.impact(hero);

            // 判断随机暴击率小于指定暴击率的时,触发英雄的暴击率
            if (bjl <= bj) {
                isBj = true;
                // sh *= 2;
                heroSh *= 2; //造成的伤害加倍
            }

            // 造成伤害不能小于1
            if (sh < 1) {
                sh = 1;
            }

            // 判断双方剩余的血量值
            if (boss.hp > 0 && hero.hp > 0) {

                console.log(`【${hero.name}】打【${boss.name}】 造成伤害:【${heroSh}】 当前血量为:【${boss.hp}】`);

                console.log(`${isBj?'暴击!':''} 【${boss.name}】打【${hero.name}】 造成伤害:【${sh}】 当前血量为:【${hero.hp}】`);

            } else if (boss.hp <= 0) { //当Boss血量值小于等于0时,hero  is  win
                console.log(`【${boss.name}】当前血量为:【${0}】is die`);
                console.log(`【${hero.name}】win`);
                break;
            } else if (hero.hp <= 0) { //当hero血量值小于等于0时,boss  is  win
                console.log(`【${hero.name}】当前血量为:【${0}】is die`);
                console.log(`【${boss.name}】win`);
                break;
            }

        }
    </script>
</body>

</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:54:12  更:2022-01-11 23:54:35 
 
开发: 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 11:34:05-

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