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面象对象成员、共享成员变量实验
Nov 19 Javascript
jQuery.extend 函数及用法详细
Sep 06 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
json传值以及ajax接收详解
May 24 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
Apr 22 Javascript
NW.js 简介与使用方法
Feb 01 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 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
PHP与javascript对多项选择的处理
2006/10/09 PHP
PHP的ASP防火墙
2006/10/09 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
python实现图片文件批量重命名
2020/03/23 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
一个入门级python爬虫教程详解
2021/01/27 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
行政专员岗位职责
2014/01/02 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
法制宣传教育方案
2014/05/09 职场文书
项目工作说明书
2014/07/29 职场文书
高三毕业感言
2015/07/30 职场文书
社会实践心得体会范文
2016/01/14 职场文书