JavaScript实现的石头剪刀布游戏源码分享


Posted in Javascript onAugust 22, 2014

这个游戏主要设计到两点:

首先是胜负运算

由于石头剪刀布是循环性的
石头 杀 剪子
剪子 杀 布
布   杀  石头
石头  杀  剪子
。。。
根据以上特点找出规律,写出算法即可。

让电脑随机

这点比较容易,前面我有写过文章介绍,不明白的童鞋可以去看看。

随机刷屏

其实这个效果不是游戏的关键性,但为了看起来更加互动,好玩,我就给加上了。这里用到了一个取模算法,根据余数去循环显示即可达到效果。

界面截图

JavaScript实现的石头剪刀布游戏源码分享

最后上代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>JS写的石头剪子布游戏 - 琼台博客</title>
		<style type="text/css">
			div{margin:20px auto;padding:10px;border:2px solid #999;width:200px;background:#ffe;}
			div#cu{font-weight:bold;font-size:30px;height:40px;color:red;}
			div#la{border:none;background:none;display:none;}
			span{color:red;font-weight:bold;}
		</style>
		<script type="text/javascript">
			var se = null,time=20,you=0,arr=new Array('石头','抹布','剪子');
			function p(n){
				you = n;
				document.getElementById('you').innerHTML=s(n);
				document.getElementById('st').disabled=true;
				document.getElementById('mb').disabled=true;
				document.getElementById('jz').disabled=true;
				document.getElementById('cu').innerHTML = '...';
				se = setInterval('t()',50);
			}
			function agin(){
				document.getElementById('st').disabled=false;
				document.getElementById('mb').disabled=false;
				document.getElementById('jz').disabled=false;		
				document.getElementById('la').style.display = 'none';
				document.getElementById('you').innerHTML = '';		
				document.getElementById('pc').innerHTML = '';
				document.getElementById('cu').innerHTML = '';
				document.getElementById('you').innerHTML= '请选择';		
			}
			function bt(){
				var pc = Math.floor(Math.random() * 3 + 1);
				document.getElementById('pc').innerHTML = s(pc);
				var str='';
				if(pc==you){
					str += '平局';	
				}else{
					var b = pc-you;
					if(b>0){
						if(b==1){
							str += '电脑赢';	
						}else{
							str += '你赢啦';	
						}				
					}else{
						b = b*-1;	
						if(b==1){
							str += '你赢啦';	
						}else{
							str += '电脑赢';	
						}	
					}		
				}
				document.getElementById('la').style.display = 'block';
				document.getElementById('cu').innerHTML = str;
			}
			function t(){
				if(time>0){
					document.getElementById('pc').innerHTML = arr[time%3];
					time--;
				}else{
					clearInterval(se);
					se = null;
					time = 20;
					bt();
				}
			}
			function s(n){
				if(n==1){
					return '石头';	
				}else if(n==2){
					return '抹布';	
				}else{
					return '剪子';	
				}
			}
		</script>
	</head>
	<body>
		<div>
			<p>你出什么?<span id="you">请选择</span></p>
			<p><button id="st" onclick="p(1);">石头</button></p>
			<p><button id="mb" onclick="p(2);">抹布</button></p>
			<p><button id="jz" onclick="p(3);">剪子</button></p>
		</div>
		<div>
			<p>电脑出?</p>
			<span style="" id="pc"></span>
		</div>
		<div id="cu"></div>
		<div id="la"><button id="agin" onclick="agin()">再来一次</button></div>
	</body>
</html>
Javascript 相关文章推荐
jquery checkbox,radio是否选中的判断代码
Mar 20 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
Jan 11 Javascript
吐槽一下我所了解的Node.js
Oct 08 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
Summernote实现图片上传功能的简单方法
Jul 11 Javascript
JS判断是否手机或pad访问实现方法
Dec 09 Javascript
Bootstrap中data-target 到底是什么
Feb 14 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
小程序的上传文件接口的注意要点解析
Sep 17 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
vue实现扫码功能
Jan 17 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 #Javascript
wap图片滚动特效无css3元素纯js脚本编写
Aug 22 #Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 #Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 #Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 #Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 #Javascript
js中实现多态采用和继承类似的方法
Aug 22 #Javascript
You might like
php注入实例
2006/10/09 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
php目录管理函数小结
2008/09/10 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
详解json在php中的应用
2018/09/30 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
js如何打印object对象
2015/10/16 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python实现复制整个目录的方法
2015/05/12 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
【python】matplotlib动态显示详解
2019/04/11 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
给上级领导的感谢信
2015/01/22 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server