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实现控制内容的向上向下滚动效果
Jun 26 Javascript
扩展jQuery 键盘事件的几个基本方法
Oct 30 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
DOM基础教程之使用DOM设置文本框
Jan 20 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
Jul 14 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
ztree实现权限横向显示功能
May 20 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
Vue 项目代理设置的优化
Apr 17 Javascript
详解webpack模块加载器兼打包工具
Sep 11 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代码
2013/12/03 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
php给图片加文字水印
2015/07/31 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
JavaScript运算符小结
2015/06/03 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
python实现画圆功能
2018/01/25 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
如何利用Python 进行边缘检测
2020/10/14 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
高级电工工作职责
2013/11/21 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
联谊会主持词
2014/03/26 职场文书
本科毕业生自荐信
2014/06/02 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
销售业务员岗位职责
2015/02/13 职场文书
团委工作总结2015
2015/04/02 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers