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 相关文章推荐
javascript 定义初始化数组函数
Sep 07 Javascript
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
javascript入门之数组[新手必看]
Nov 21 Javascript
BootStrap按钮标签及基本样式
Nov 23 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
vue模板语法-插值详解
Mar 06 Javascript
JavaScrpt判断一个数是否是质数的实例代码
Jun 11 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 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实现正则表达式分组捕获操作示例
2018/02/03 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
js实现点赞效果
2020/03/16 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
python实现复制整个目录的方法
2015/05/12 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
python map比for循环快在哪
2020/09/21 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
校庆筹备方案
2014/03/30 职场文书
小学班主任寄语大全
2014/04/04 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
Nginx利用Logrotate实现日志分割
2022/05/20 Servers