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选择器-根据多个属性选择示例代码
Oct 21 Javascript
用js设置下拉框为只读的小技巧
Apr 10 Javascript
js表单中选择框值的获取及表单的序列化
Dec 17 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
js实现模糊匹配功能
Feb 15 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
Feb 16 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
JavaScript Array对象使用方法解析
Sep 24 Javascript
js实现select下拉框选择
Jan 11 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
Jul 27 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运行环境配置的详解
2013/06/04 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
js 匿名调用实现代码
2009/06/19 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
js键盘事件实现人物的行走
2020/01/17 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python 中 Meta Classes详解
2016/02/13 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
平面设计自荐信
2013/10/07 职场文书
新学期开学寄语
2014/01/18 职场文书
升旗仪式主持词
2014/03/19 职场文书
大学生评语大全
2014/04/18 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
python中tkinter复选框使用操作
2021/11/11 Python
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers