当前位置: 首页 > news >正文

JavaScript_Pig Game切换当前玩家

const current0El = document.getElementById('current--0');
const current1El = document.getElementById('current--1');
if (dice !== 1) {currentScore += dice;current0El.textContent = currentScore;} else {}
});

这是我们上个文章写的代码,这个代码明显是有问题的,当用户不等于1 ,当然分数累计的都是第一个用户,这个用户的累加应该是动态,当我们切换用户的时候,这个条件判断仍然有效

let activePlayer =0;

我们定义这样的一个变量,作用是什么呢?意思是如果为0的话,表示他就是当前的活跃用户

  if (dice !== 1) {currentScore += dice;document.getElementById( `current--${activePlayer}`).textContent = currentScore;current0El.textContent = currentScore;} else {player0El.classList.toggle('player--active');player1El.classList.toggle('player--active');}
});

这个代码就是,获取当前为0的用户,将他的当前分数赋值

● 然后如果是掷色子是1的话,我们要去判断如果活跃用户是0的话,就返回真的,返回真就会返回1,如果用户是1的话,就返回假的,将他置于0

activePlayer = activePlayer === 0 ? 1 : 0;

解释一下这个表达式的含义:
● 条件部分:activePlayer === 0,判断 activePlayer 是否等于 0。
● 如果条件为真(即 activePlayer 等于 0),则表达式返回 expression1,也就是 1。
● 如果条件为假(即 activePlayer 不等于 0),则表达式返回 expression2,也就是 0。
这样就巧妙的设置了activePlayer(活跃用户)的值了;也可以动态的给用户计算分数了
在这里插入图片描述

● 切换成功,但是我们还没有把活跃用户的当前分数置为0

  if (dice !== 1) {currentScore += dice;document.getElementById(`current--${activePlayer}`).textContent =currentScore;} else {activePlayer = activePlayer === 0 ? 1 : 0;currentScore = 0;}
});

● 但是真正的游戏规则是,当切换用户的话,当前的分数就为0了

  if (dice !== 1) {currentScore += dice;document.getElementById(`current--${activePlayer}`).textContent =currentScore;} else {document.getElementById(`current--${activePlayer}`).textContent = 0;currentScore = 0;activePlayer = activePlayer === 0 ? 1 : 0;}
});

在这里插入图片描述

当切换用户的时候,编程0
● 接着我们就来切换底色了,谁是活跃用户,谁的底色就是白色

const player0El = document.querySelector('.player--0');
const player1El = document.querySelector('.player--1');if (dice !== 1) {currentScore += dice;document.getElementById(`current--${activePlayer}`).textContent =currentScore;} else {document.getElementById(`current--${activePlayer}`).textContent = 0;currentScore = 0;activePlayer = activePlayer === 0 ? 1 : 0;player0El.classList.toggle('player--active');player1El.classList.toggle('player--active');}
});

在这里插入图片描述

当切换用户的时候,player2变成白色
注意:toggle是如果存在类就删除它,如果不存在就加上它,我们不需要去通过container去判断了

现在就查保持分数了,当玩家选择保持分数的时候,当前分数会被保存再上面大的总分当中!下个文章我们来展现它!

相关文章:

  • 【tio-websocket】13、消息编码、解码、处理—AioHandler
  • 现代挖掘机vr在线互动展示厅是实现业务增长的加速度
  • Lauterbach使用指南之RunTime功能
  • 服务器之日常整活
  • golang连接池检查连接失败时如何重试
  • SpringAOP源码解析之advice执行顺序(三)
  • Spring Boot 配置邮件发送服务
  • 【实用网站分享】
  • 刷题笔记day01-数组
  • Lvs+Nginx+NDS
  • conda: error: argument COMMAND: invalid choice: ‘activate‘
  • 如何在IDEA中配置指定JDK版本?轻松解决!!!
  • 在vscode中运行c++代码,windows 11系统
  • 【LeetCode力扣】189 53 轮转数组 | 最大子数组和
  • C++-类与对象(上)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Java精华积累:初学者都应该搞懂的问题
  • k8s 面向应用开发者的基础命令
  • MySQL QA
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue自定义指令实现v-tap插件
  • 关于使用markdown的方法(引自CSDN教程)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 两列自适应布局方案整理
  • 前端路由实现-history
  • 软件开发学习的5大技巧,你知道吗?
  • 白色的风信子
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #162 (Div. 2)
  • #Z0458. 树的中心2
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (pojstep1.3.1)1017(构造法模拟)
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)计算机毕业设计高校学生选课系统
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一)kafka实战——kafka源码编译启动
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • .bat批处理出现中文乱码的情况
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 5种线程安全集合
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net refrector
  • .NET 分布式技术比较
  • .NET 服务 ServiceController
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • @Controller和@RestController的区别?
  • @Responsebody与@RequestBody