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代码
Jan 11 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
浅析JS操作DOM的一些常用方法
May 13 Javascript
jQuery实现的跨容器无缝拖动效果代码
Jun 21 Javascript
js实现导航栏中英文切换效果
Jan 16 Javascript
自定义事件解决重复请求BUG的问题
Jul 11 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
Jul 25 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
Sep 16 Javascript
详解vue 兼容IE报错解决方案
Dec 29 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
基于Vue+Webpack拆分路由文件实现管理
Nov 16 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.ini 中文版
2006/10/28 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
老生常谈Python进阶之装饰器
2017/05/11 Python
python如何读写json数据
2018/03/21 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
趣味比赛活动方案
2014/02/15 职场文书
民事调解书范文
2015/05/20 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技