JS小游戏----猜拳小游戏
这周学习了JS 的基础数据 函数 和 对象
每一个都是很多的属性和方法
下面是对象做的Xmind
有很多方法
创建对象的方法
遍历对象
添加删除对象中的属性
访问对象的方法 点 中括号 访问法
猜拳游戏 实际原理其实很简单 规则大家全世界都通用
所以 这个游戏 短短几行 switch就可以 把简易的原理实现出来
但是要做的 像一个小游戏一样 能应对各种情况 和 前进 和 后退的操作
加了一些switch 语句 让分支语句更多 是考虑到的情况更加全面 然后用 函数包装 功能模块
列如 判断模块 打印模块 设置模块
也创建了玩家的对象 和 电脑的对象
一个小的游戏 也可以做的很复杂 这样程序 更加完整 健壮
运用到了这周所学的大多数知识
程序亮点:
简单的switch语句并没有什么难度
运用变量来控制while(state)
类似于一个开关 控制了while循环
都是用的函数包装的代码 流程都在main函数中
程序缺点
对于清屏函数放置的位置不是太清楚 没能达到理想的清屏效果 我就删除了一些
有些函数比较重复累赘 不够精简 还可以改进 没有完美的达到DRY原则
Tips:
理清思路
从主函数出发 慢慢发现需求 创建 需要的工具函数
猜拳是个很简单的游戏 先把主干功能函数 (出拳 和 判断胜负 )做好
之后再加一些 功能 完善程序
1 let readline = require("readline-sync"); 2 //清屏函数 3 let clear = () => process.stdout.write(process.platform === 'win32' ? '\x1Bc' : '\x1B[2J\x1B[3J\x1B[H'); 4 5 let choose = ["石头", "剪刀", "布"]; 6 let player = { 7 name: "玩家", 8 vic: 0 9 } 10 let com = { 11 name: "电脑", 12 vic: 0 13 } 14 15 function describe(playerChoose, comChoose, x) { 16 if (x == 1) { 17 console.log(player.name + ":出的是 " + choose[playerChoose - 1]); 18 console.log(com.name + ":出的是 " + choose[comChoose - 1]); 19 console.log(player.name + "win !"); 20 player.vic++; 21 console.log(player.name + ": " + player.vic + " VS " + com.name + ": " + com.vic); 22 } 23 else if (x == 0) { 24 console.log(player.name + ":出的是 " + choose[playerChoose - 1]); 25 console.log(com.name + ":出的是 " + choose[comChoose - 1]); 26 console.log("平局"); 27 console.log(player.name + ": " + player.vic + " VS " + com.name + ": " + com.vic); 28 } else { 29 console.log(player.name + ":出的是 " + choose[playerChoose - 1]); 30 console.log(com.name + ":出的是 " + choose[comChoose - 1]); 31 console.log(com.name + "win !"); 32 com.vic++; 33 console.log(player.name + ": " + player.vic + " VS " + com.name + ": " + com.vic); 34 } 35 } 36 37 function judge(playerChoose, comChoose) { 38 if (playerChoose == comChoose) { 39 return 0; 40 } 41 else if (playerChoose == 1) { 42 if (comChoose == 2) { 43 return 1; 44 } 45 else { 46 return -1; 47 } 48 } 49 else if (playerChoose == 2) { 50 if (comChoose == 1) { 51 return -1; 52 } 53 else { 54 return 1; 55 } 56 } 57 else if (playerChoose == 3) { 58 if (comChoose == 2) { 59 return -1; 60 } 61 else { 62 return 1; 63 } 64 } 65 else { 66 console.log("error"); 67 } 68 } 69 70 function setInfo() { 71 let state1 = true; 72 while (state1) { 73 console.log("1,设置玩家名字 2,设置电脑名字 3,返回主菜单"); 74 setName = parseInt(readline.question("")); 75 switch (setName) { 76 case 1: 77 console.log("请输入玩家的名字"); 78 player.name = readline.question(""); 79 break; 80 case 2: 81 console.log("请输入电脑的名字"); 82 com.name = readline.question(""); 83 break; 84 case 3: 85 state1 = false; 86 break; 87 default: 88 console.log("不要乱整"); 89 setInfo(); 90 break; 91 } 92 } 93 94 } 95 96 97 function main() { 98 let state = true; 99 while (state) { 100 console.log("1,开始游戏 2,游戏说明 3,设置 4,退出"); 101 let mode = parseInt(readline.question("")); 102 switch (mode) { 103 case 1: 104 let playNow = true; 105 while (playNow) { 106 var comChoose = Math.floor(Math.random() * 3 + 1); 107 console.log("请选择你的手势"); 108 console.log("1,石头 2,剪刀 3,布 4,返回"); 109 var playerChoose = parseInt(readline.question("")); 110 switch (playerChoose) { 111 case 1: 112 describe(1, comChoose, judge(playerChoose, comChoose)) 113 break; 114 case 2: 115 describe(2, comChoose, judge(playerChoose, comChoose)) 116 break; 117 case 3: 118 describe(3, comChoose, judge(playerChoose, comChoose)) 119 break; 120 case 4: 121 playNow = false; 122 // state = false; 123 break; 124 default: 125 console.log("输入有误 ,请重新输入"); 126 readline.question(""); 127 } 128 } 129 break; 130 case 2: console.log("懂得都懂"); 131 console.log("按enter返回主菜单"); 132 readline.question(""); 133 break; 134 case 3: setInfo(); 135 break; 136 case 4: 137 state = false; 138 break; 139 default: 140 console.log("输入有误"); 141 clear(); 142 } 143 } 144 console.log("最终比分为:"); 145 console.log(player.name + ":" + player.vic + " vs " + com.name + ":" + com.vic); 146 console.log("Thank you for playing,", player.name); 147 } 148 main();
转载于:https://www.cnblogs.com/ATnTention/p/11406607.html
JS小游戏----猜拳小游戏相关推荐
- js实现的猜拳小游戏
最近在学js,实现了一个猜拳小游戏,分享一下 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- 微信小程序-猜拳小游戏
用到的知识点 1 页面级变量的声明和调用(js调用和wxml调用) 2 数组变量 3 随机数 4 组件dataset数据获取 5 if判断语句 6 三元运算符 程序逻辑 计算机出拳利用随机数函数来生成 ...
- 简单的java猜拳小游戏
简单的java猜拳小游戏 /*** 猜拳小游戏* @ author lyle*/import java.util.Scanner;public class 猜拳小游戏 {public static v ...
- 基于 Vue 制作一个猜拳小游戏
目录 前言: 项目效果展示: 对应素材: 代码实现思路: 实现代码: 总结: 前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧. 描述: 石头剪子布,是一种 ...
- php 设计五子棋游戏,基于js+canvas实现五子棋小游戏
本文实例为大家分享了js+canvas实现五子棋小游戏的具体代码,供大家参考,具体内容如下 效果展示: 源码展示: 五子棋 * { margin: 0; padding: 0; } body { ma ...
- 人机猜拳代码python_python实现人机猜拳小游戏
今天的这篇文章呢是对人机猜拳小游戏--石头剪刀布的一个描述以及代码展现 石头剪刀布游戏代码的简介:关于石头剪刀布这个小游戏,大致得到思路就是,玩家出一个手势,然后电脑再随机出一个手势,最后再判断是玩家 ...
- 9206-1118-周三 猜拳小游戏一次性版本
9206-1118-周三 猜拳小游戏一次性版本 源码 https://cloud.189.cn/t/NV7Njin2MBby(访问码:gr3w) 先建好相关文件 入口文件入口函数中的代码 在入口函数中 ...
- 猜拳游戏php代码,最常见的猜拳小游戏Android代码实现
本文实例为大家分享了Android猜拳小游戏,供大家参考,具体内容如下 简单的 页面跳转 和 点击事件 的实现... --> AndroidManifest.xml package=" ...
- 实现石头剪刀布获胜法_用java实现一个猜拳小游戏
本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 项目名称 猜拳小游戏 项目描述 玩家与电脑进行猜拳游戏,玩家行为采用输入方式,电脑行为采用随机形式. 实现: User类 ...
最新文章
- R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩、自定义调色板、在两端添加点图的线段segments、整体排序从大到小、自定义数据点的大小、添加数值标签)
- 北京大学 AdaMod优化器 孙栩
- excel公式 某一个单元格等于另一个单元格的值_EXCEL函数学习5——COUNTIF函数
- Python 之 风格规范(Google )
- 批量关闭电脑有害端口方法
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
- jsp的jstl的foreach标签
- 转仁兄:Binary search and its variation
- jQuery选择元素
- 雅马哈php mt7,雅马哈专业录音室监听耳机 HPH-MT7 正式发售!
- MongoDB未授权访问漏洞记录(端口:27017,37017)
- Python爬虫之xpath的详细使用(爬虫)
- 机器学习基础(十五)—— blending
- liunx服务器间拷贝文件,linux 不同服务器之间拷贝文件
- Oracle数据库限制ip访问
- 资源下载类网站源码 第二版本分享
- 基于msm8916移植lcd流程
- 百度地图坐标转高德地图坐标
- 导入 xlsx php,php如何使用phpexcel类导入excel表格数据
- GeoGebra 实例 时钟