代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.div1{
margin-left: 40px;
margin-top: 40px;
}
</style>
</head>
<body>
<table border="1px" cellspacing="0px"><!-- border设置表格边线,cellspacing设置边框的边距 -->
<tr>
<td>
<p>我方出拳</p>
<img src="img/2.png" id="img2">
</td>
<td>VS</td>
<td>
<p>敌方出拳</p>
<img src="img/3.png" id="img3">
</td>
</tr>
<tr>
<td colspan="3">
<p id="result">PLEASE CHOLCE</p>
</td>
</tr>
<tr>
<td>
<p>我方选择的是</p>
<img src="img/2.png" id="img1">
</td>
<td>请出拳</td>
<td>
<div class="div1">
<select onchange="changeImg()" id="choiceSelect">
<option value="2">剪刀</option>
<option value="1">石头</option>
<option value="3">布</option>
</select>
</div>
<div class="div1">
<input type="button" value="想好了出拳" onclick="getChoice()">
</div>
<div class="div1">
<input type="button" value="查看结果" onclick="showresult()">
</div>
</td>
</tr>
<tr>
<td colspan="3" id="finalresult">
<p>您玩了0局,您平0次,赢0次,输0次</p></td>
</tr>
</table>
<script type="text/javascript">
// n1代表我方数
var n1 = 2;
var peace = 0;
var win = 0;
var lose = 0;
var all = 0
function changeImg(){
var choiceSelect = document.getElementById("choiceSelect");
n1 = choiceSelect.value;
document.getElementById("img1").src = "img/"+n1+".png";
}
function getChoice(){
//n2代表敌方数
var n2 = parseInt(Math.random()*3)+1;
// alert(n2);
document.getElementById("img2").src = "img/"+n1+".png";
document.getElementById("img3").src = "img/"+n2+".png";
pk(n1,n2);
}
function pk(n1,n2){
var result = document.getElementById("result");
if (n1-n2 == 0) {
result.innerHTML = "你和计算机平"+n1+"-------"+n2;
peace++;
}
if (n1-n2 == -1||n1-n2 == 2) {
result.innerHTML = "你赢了!!!"+n1+"-------"+n2;
win++;
}
// if (n1-n2 == 1) {
if (n1-n2 == 1||n1-n2 == -2 ) {
// getChoice();
result.innerHTML = "你输了!!!"+n1+"-------"+n2;
lose++;
}
all++;
document.getElementById("finalresult").innerHTML = "<p>您玩了"+all+"局,您平"+peace+"次,赢"+win+"次,输"+lose+"次</p>";
}
function showresult(){
document.getElementById("finalresult").innerHTML = "<p>您玩了"+all+"局,您平"+peace+"次,赢"+win+"次,输"+lose+"次</p>";
}
</script>
</body>
</html>
changeImg:获取选择的结果,显示对应的图片
n1:为获取下拉框选择的结果的内容
getChoice:获取0-1的随机数(不包括1)乘以3向下取整+1,得到的数为1,2,3
pk:计算输赢(例如:当我选石头为1,电脑选剪刀为2,那么n1-n2等于-1,所以判断如果结果等于-1时为我赢。一共有九种可能)

图片:

												

js石头剪刀布小游戏的更多相关文章

  1. pixi.js 微信小游戏 入手

    pixi是什么?一款h5游戏引擎 优点:简单简洁性能第一 缺点:大多数用的国产三大引擎,pixi资料少,工具少, 为什么学,装逼 用pixi开发小游戏行吗? 行.但要简单处理下 下载官网上的 weap ...

  2. JS写小游戏(一):游戏框架

    前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...

  3. three.js 微信小游戏

    最近在 https://classroom.udacity.com/courses/cs291 学习了一些 3D 引擎和 three.js 的知识 把 three.js 弄到微信小游戏里,先随便跑一跑 ...

  4. 微信小程序开发入门学习(1):石头剪刀布小游戏

    从今天起开始捣鼓小程序了2018-12-17   10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(tex ...

  5. js消除小游戏(极简版)

    js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...

  6. 例子:js超级玛丽小游戏

    韩顺平_轻松搞定网页设计(html+css+javascript)_第34讲_js超级玛丽小游戏_学习笔记_源代码图解_PPT文档整理 采用面向对象思想设计超级马里奥游戏人物(示意图) 怎么用通过按键 ...

  7. Java石头剪刀布小游戏

    package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...

  8. JS扫雷小游戏

    HTML代码 <title> 扫雷 </title> <!-- ondragstart:防拖拽生成新页面 oncontextmenu:屏蔽右键菜单--> <b ...

  9. 使用JS制作小游戏贪吃蛇

    先看效果图: 过程如下: 1.首先创建一张画布地图<div class="map"> </div>: 2.创建食物的自调用函数 (function (){ ...

随机推荐

  1. 小米手机连接adb只显示List of devices attached

    使用appium的过程中,与同事交换了下手机,突然连接adb只提示List of devices attached,没有内容了咩~ 后来看到C大的帖子,http://blog.cofface.com/ ...

  2. sharepoint 查阅项SPFieldLookup 赋值 .

    在项目中,经常会涉及列表或者文档库之间的相互引用,而这个时候我们用的更多的就是查阅项(lookup),以前没有去关注取值或者赋值的问题,今天正好碰到一个Case,就顺道总结一下.我们知道链接和图片的字 ...

  3. 关于Authorware的十二种使用技巧

    Authorware是美国Macromedia公司(现已被adobe公司收购)开发的一种多媒体制作软件,它是一个图标导向式的多媒体开发工具.今天我们学习一下Authorware的十二种使用技巧,如果你 ...

  4. Python中的Numpy、SciPy、MatPlotLib安装与配置

    Python安装完Numpy,SciPy和MatplotLib后,可以成为非常犀利的科研利器.网上关于这三个库的安装都写得非常不错,但是大部分人遇到的问题并不是如何安装,而是安装好后因为配置不当,在使 ...

  5. April 23 2017 Week 17 Sunday

    It is a characteristic of wisdom not to do desperate things. 不做孤注一掷的事情是智慧的表现. We are told that we ha ...

  6. 关于tcp的keepalive

    先记录几个要点 只能用在面向连接的tcp中,对应对端的非正常关闭有效(对端服务器重启这种,也是正常关闭,FIN RST包都算) 只要是写入到缓冲区就认为OK,所以UDP不适合,所以如果有正常的网络交互 ...

  7. LA 5031 图询问

    题目链接:https://vjudge.net/contest/159527#problem/A 题意:(求一个 图 中的连通分量中的 第 k 大) 一张图,n 个点,m 条边, 有一些操作: 删除 ...

  8. 2月4号学习的一个SSM整合项目,第一课

    本文引自:https://github.com/Sunybyjava/seckill  原作者:sunybyjava@gmail.com seckill 一个整合SSM框架的高并发和商品秒杀项目,学习 ...

  9. 如何将Win7做为NTP服务器

    1. 修改注册表项    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer   ...

  10. Visual Studio 2013 ReportViewer Control

    最近需要给学生讲报表,.NET的自然就是选择RDLC了. 因为学生比赛是用Visual Studio 2013,所以我在自己的笔记本上安装了Visual Studio 2013(平常是用2010),安 ...