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 相关文章推荐
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
Sep 20 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
JS实现拖动示例代码
Nov 01 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
javascript实现汉字转拼音代码分享
Apr 20 Javascript
Vuex 进阶之模块化组织详解
Jan 12 Javascript
VUE 使用中踩过的坑
Feb 08 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
简单了解JavaScript中常见的反模式
Jun 21 Javascript
jquery插件实现图片悬浮
Apr 16 jQuery
代码解析React中setState同步和异步问题
Jun 03 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中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
JavaScript数组的5种迭代方法
2017/09/29 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
移交协议书
2014/08/19 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
mybatis 获取更新记录的id
2022/05/20 Java/Android