猜拳php代码,使用JavaScript如何实现猜拳游戏(详细教程)
这篇文章主要介绍了JavaScript基于面向对象实现的猜拳游戏,结合完整实例形式分析了javascript基于面向对象实现猜拳游戏的具体页面布局、样式及功能相关操作技巧,需要的朋友可以参考下
本文实例讲述了JavaScript基于面向对象实现的猜拳游戏。分享给大家供大家参考,具体如下:
html代码:
猜拳游戏
我:name
电脑:name
开始
请开始游戏...
石头
剪刀
布
css样式(字体:迷你简卡通)*{
margin:0px;
padding:0px;
font-family:'迷你简卡通';
font-size:28px;
}
html,body{
width:100%;
height:100%;
background:rgba(244, 184, 202, 1);
}
ul{
list-style:none;
}
#game{
width:800px;
height:600px;
margin:auto;
top:20%;
}
#game ul{
width:100%;
height:415px;
}
#game ul li{
width:50%;
height:100%;
float:left;
text-align:center;
}
#game ul li .anim{
width:223px;
height:337px;
border:10px solid #ff6699;
border-radius:50%;
margin:20px auto 0;
background-position:center;
background-repeat:no-repeat;
}
.user{
background:url('../img/readyl.png');
}
.comp{
background:url('../img/readyr.png');
}
#game .op{
width:100%;
text-align:center;
}
#game .op button{
width:200px;
height:60px;
border:10px solid #ff6699;
background:rgb(253, 217, 227);
border-radius:50%;
outline:none;
cursor:pointer;
font-weight:bold;
}
#game .op button:hover{
border-color:#ff0000;
background-color:#ff0000;
font-size:36px;
color:rgb(253, 217, 227);
}
#game .op button.disabled{
border-color:#bbb;
color:#bbb;
background-color:#ccc;
font-size:28px;
cursor:default;
}
#game .guess{
width:220px;
height:100%;
position:fixed;
top:0px;
left:0px;
display:none;
}
#game ul.guess li{
width:100%;
height:32%;
}
#game ul.guess li p{
width:100%;
height:90%;
border:10px solid #ff6699;
border-radius:50%;
background-position:center;
background-repeat:no-repeat;
cursor:pointer;
background-color:rgba(244, 184, 202, 1);
}
#game ul.guess li p:hover{
background-color:#ff6699;
color:#fff;
}
p.guess0{
background-image:url('../img/0.png');
}
p.guess1{
background-image:url('../img/1.png');
}
p.guess2{
background-image:url('../img/2.png');
}
#game p.text{
margin-top:20px;
text-align:center;
font-size:50px;
font-weight:bold;
}
js代码Function.prototype.extend = function( fn ){
for( var attr in fn.prototype ){
this.prototype[attr] = fn.prototype[attr];
}
}
//父级构造函数用于继承,共有属性
function Caiquan( name ){
this.name = name;
this.point = 0;
}
//用于继承下面衍生,共有方法
Caiquan.prototype.guess = function(){}
//继承父,玩家的构造函数
function User( name ){
Caiquan.call(this,name);
}
User.extend( Caiquan );
User.prototype.guess = function( point ){
return this.point = point;
}
//电脑的构造函数
function Comp( name ){
Caiquan.call(this,name);
}
Comp.extend( Caiquan ) ;
//电脑的猜拳方法,随机
Comp.prototype.guess = function(){
return this.point = Math.floor( Math.random()*3 );
}
//裁判构造函数
function Game( u , c ){
this.text = document.getElementById('text');
this.btn = document.getElementById("play");
this.user = u;
this.comp = c;
this.classN =document.getElementsByClassName('name');
this.guess = document.getElementById("guess");
this.anim = document.getElementsByClassName("anim");
this.num = 0;
this.init();
this.tiemr = null;
}
Game.prototype.Caiquan = function(){
this.textValue( '请出拳...' );
this.BtnDisable();
this.start();
this.guess.style.display = 'block';
}
//怎么玩
Game.prototype.start = function(){
var This = this;
this.timer = setInterval(function(){
This.anim[0].className = 'anim user guess' +( ( This.num ++ ) % 3 );
This.anim[1].className = 'anim comp guess' + ( ( This.num ++ ) % 3 ) ;
},500)
}
//初始化名字
Game.prototype.init = function(){
this.classN[0].innerHTML = '我:' + this.user.name;
this.classN[1].innerHTML = '电脑:' + this.comp.name;
}
//提示面板区域的修改
Game.prototype.textValue = function( val ){
this.text.innerHTML = val;
}
//按钮失效
Game.prototype.BtnDisable = function(){
if( this.btn.disabled ){
this.btn.disabled = false;
this.btn.className ='';
this.btn.innerHTML = '再来一次'
}else{
this.btn.disabled = true;
this.btn.className ='disabled';
}
}
Game.prototype.verdict = function( point ){
clearInterval(this.timer);
var userGu = user.guess(point);
var compGu = comp.guess();
this.anim[0].className = 'anim user guess' + userGu;
this.anim[1].className = 'anim comp guess' + compGu;
var res = userGu - compGu;
switch (res){
case 0:
this.textValue('平局!!!')
break;
case 1:
case -2:
this.textValue('lose~~~');
break;
case 2:
case -1:
this.textValue('win!!!')
break;
}
this.guess.style.display = 'none';
this.BtnDisable();
}
var user = new User( '锐雯' );
var comp = new Comp( '拉克丝' );
var game = new Game( user , comp );
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
猜拳php代码,使用JavaScript如何实现猜拳游戏(详细教程)相关推荐
- javascript网页二次元3D小人详细教程
一.科班直接复制以下代码到vscode打开网页即可(小白请往下看教程) 二.小白详细教程(没有代码编译软件一样能做出来看到效果) 三.视频展示 一.科班直接复制以下代码到vscode打开网页即可(小白 ...
- 280行代码:Javascript 写的2048游戏
2048 原作者就是用Js写的,一直想尝试,但久久未动手. 昨天教学生学习JS代码.不妨就做个有趣的游戏好了.2048这么火,是一个不错的选择. 思路: 1. 数组 ,2维数组4x4 2. 移动算法, ...
- 零基础代码学python-零基础学Python 超详细教程
01.第一章:Python介绍和安装 01.Python语言的特点 02.Python的发展历史与版本 03.Python的安装 02.第二章:Python基础语法 04.Python程序的书写规则 ...
- python血条游戏代码_手把手Python和pygame游戏开发教程(二)
欢迎,来自IP地址为:114.99.15.226 的朋友 前面教程第一部分已经成了小兔子的正确移动和转向,现在需要给它添加更多的动作以进行游戏的进一步开发. 让小兔子可以射箭 你的小兔子可以正确移动后 ...
- C#代码与javaScript函数的相互调用
C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4 ...
- java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...
- .net中C#代码与javaScript函数的相互调用问题
.net中C#代码与javaScript函数的相互调用问题. 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript ...
- 如何通过Chrome中的代码设置JavaScript断点?
我想强制Chrome调试器通过代码或使用某种注释标签(例如console.break()在一行上中断. #1楼 您可以使用debugger; 在您的代码中. 如果开发者控制台已打开,则执行将中断. 它 ...
- Web前端:JavaScript最强总结 附详细代码 (带常用案例!)
Web前端基础: Web前端:HTML最强总结 附详细代码 Web前端:CSS最强总结 附详细代码 Web前端:JavaScript最强总结 附详细代码 Web前端工具: Web前端: JQuery最 ...
- android调用js接口,Android代码和JavaScript互相调用
WebView加载一个使用JavaScript的网页,并且要实现相互之间的调用,需要启用WebView对JavaScript的支持,一旦启用之后你就可以通过接口来实现本地代码和JavaScript代码 ...
最新文章
- 自己写一个最简单的bootloader_jz2440
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
- Bootstrap系列 -- 34. 按钮下拉菜单
- 编写 matlab怎么调用 8 点和 16 点的 fft,8点基于DIT的FFT的实现
- 【坐在马桶上看算法】算法4:队列——解密QQ号
- Turtlebot3调试必看——爬坑笔记
- 简述linux内核中,Linux内核中的文件描述符(一)——基础知识简介
- [批处理]NetstatFilter快速查找端口被占用问题
- 将字符串转为16进制数_Python 如何将字符串转为字典
- java怎么限制一个对象的内存_java对象的内存布局及创建过程
- 我的课程表--项目需求分析
- Error response from daemon: OCI runtime exec failed: exec failed: container_linux.go:345:
- 计算apk包的安装之后占用空间以及运行时占用内存
- Storage LUN connected on Emulex / Qlogica HBA not detecting during boot time.
- vs禁用函数安全检查
- 高通MSM8909:LCD hx8394d驱动调试
- 怎么更改电脑桌面文件存放路径
- 【C/C++进阶】输入的技巧
- 爱聊语音聊天室为什么用不了摄像头?
- 【硬件驱动】360驱动大师 v2.0.0.1660单文件网卡绿化版
热门文章
- 注塑机摆放间距多少合适_注塑模具加工须知(1):必须注意注塑机注塑参数“拉杆间距”...
- 三大微分中值定理及泰勒中值定理证明
- php 开源系统(cms),30个很棒的PHP开源CMS内容管理系统
- 深入理解 ZK 中的 “大多数” 机制
- 题目 1548: 盾神与砝码称重
- 脱壳进阶篇——IAT修复与解密
- 计算机实现两个数相加的过程,嵌入式FORTH虚拟计算机的实现
- oracle数据库外联,Oracle数据库-关于外联接
- 信息与计算机科学学校排名,2021中国信息与计算科学专业大学排名 最好的高校排行榜...
- scheme 中文教程