本文主要介绍了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面向对象实现猜拳游戏相关推荐

  1. JavaScript面向对象实现-坦克大战(附前端全套学习路线)

    [课程简介] 使用javascript+面向对象实现一个坦克大战游戏,让更多的同学能更加深入地理解面向对象思想. [主讲内容] 1. 讲解什么是面向对象,javascript中如何实现面向对象 2. ...

  2. JavaScript 面向对象(二)——案列篇

    看案例前可以先看看基础篇:JavaScript  面向对象(一)--基础篇 案例--面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...

  3. 【javascript面向对象之路】让我们一起来坦克大战吧01

    提问 不知道大家发现没有,运行时候浏览器或者电脑会变得很卡哦.根据我们之前的学习,你知道是什么原因导致的吗? 若是各位有兴趣,请你回答卡的原因,并提出优化方案.  前言 PS 各位要看效果还是使用ff ...

  4. Javascript面向对象深入-两小时实现坦克大战(含源码+工具+具体流程)

    坦克大战是很多80.90后不可磨灭的童年 记忆,借着这次公开课,我们一起使用 JavaScript面向的方式实现这个小游戏.让大家在这个小游戏的过程中学习面向对象在es6中的实现方式,以游戏制作的方式 ...

  5. JavaScript面向对象编程-第三版不完全系统解读

    JavaScript面向对象编程-第三版不完全系统解读 作者:老九-技术大黍 产品:查看原文 社交:知乎 公众号:老九学堂(新手有福利) 特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系笔者 ...

  6. 面向对象编程java小游戏_JavaScript面向对象编程小游戏---贪吃蛇代码实例

    1 面向对象编程思想在程序项目中有着非常明显的优势: 1- 1 代码可读性高.由于继承的存在,即使改变需求,那么维护也只是在局部模块 1-2 维护非常方便并且成本较低. ​2 这个demo是采用了面向 ...

  7. JavaScript面向对象编程

    自从有了Ajax这个概念,JavaScript作为Ajax的利器,其作用一路飙升.JavaScript最基本的使用,以及语法.浏览器对象等等东东在这里就不累赘了.把主要篇幅放在如何实现JavaScri ...

  8. 《JavaScript面向对象精要》读书笔记

    JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...

  9. javascript面向对象系列第一篇——构造函数和原型对象

    前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如何用构造函数和原型对象来创建对象 构造函数 构造函数是 ...

  10. 用JSON和Javscript的prototype来构建完善的Javascript面向对象表示法

    [原文地址:http://www.cnblogs.com/robinhood/archive/2006/11/16/515412.html] 上次发贴没能很好的总结Javascrip编写类的方法,这次 ...

最新文章

  1. php5.6.11编译安装报错configure: error: Don't know how to define struct flock on this system
  2. sicp 4.2.1两题
  3. Python语言的程序结构
  4. 再谈 HBase 八大应用场景
  5. js中的preventDefault
  6. win2003无法进入桌面_救急,如何通过命令行备份桌面重要文件?
  7. js处理日期的一些整理(js获取给定日期前一天的日期)
  8. SpringBoot2.1.5(7)---更换Banner
  9. Asp.Net MVC 体验 2 持久层的构建
  10. html2canvas截图地图和看到的不一样_大秦赋,我看到的不一样的赢异人。
  11. day48 Pyhton 数据库Mysql 05
  12. dede调用一个栏目下的子栏目
  13. ui-router参数传递
  14. configure: error: Jabber library not found
  15. Python的学习笔记案例4--52周存钱挑战4.0
  16. 这些问题你是否也有中招?TMT行业质量报告新鲜出炉
  17. BSS/SSID/BSSID、VAP和ESS
  18. 新版标准日本语中级_第二十七课
  19. 【2016北京集训】网络战争
  20. 【Python发展】pandas和koalas

热门文章

  1. Firefox插件的安装及使用方法(持续更新中)
  2. 盾神与积木游戏 (贪心典例)
  3. 编写Java程序,使用抽象类和抽象方法构建不同动物的扑食行为,抽象类设计
  4. 工程经济—利润和所得税费用
  5. 两个人聪明人的空城——《司马懿之虎啸龙吟》
  6. WinCap数据包显示
  7. Excel 2010 VBA 入门 058 定时运行程序
  8. 解决Redis持久化数据丢失
  9. 怎么修改ftp服务器被动端口,ftp服务器改为被动模式
  10. 2017-2018-2 20179215《网络攻防实践》第二周作业