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 相关文章推荐
用js计算页面执行时间的函数
Dec 07 Javascript
JS request函数 用来获取url参数
May 17 Javascript
js或者jquery判断图片是否加载完成实现代码
Mar 20 Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
在 React、Vue项目中使用SVG的方法
Feb 09 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
May 13 Javascript
javascript前端实现多视频上传
Dec 13 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP n个不重复的随机数生成代码
2009/06/23 PHP
学习php分页代码实例
2013/10/24 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python实现一个简单的MySQL类
2015/01/07 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
详解Python高阶函数
2020/08/15 Python
标准毕业生自荐信范文
2013/11/04 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
社区维稳工作方案
2014/06/06 职场文书
校庆标语集锦
2014/06/25 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书