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 相关文章推荐
input:checkbox多选框实现单选效果跟radio一样
Jun 16 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
Javascript 数组排序详解
Oct 22 Javascript
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
深入理解JavaScript的React框架的原理
Jul 02 Javascript
JavaScript模块规范之AMD规范和CMD规范
Oct 27 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 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导入大量数据到mysql性能优化技巧
2014/12/29 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
php进程间通讯实例分析
2016/07/11 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
JS按字节截取字符长度实例
2013/11/20 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
python conda操作方法
2019/09/11 Python
Python实现分数序列求和
2020/02/25 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
建龙钢铁面试总结
2014/04/15 面试题
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
入党自荐书范文
2014/03/09 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
高一作文之暖冬
2019/11/09 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL