JavaScript基于面向对象实现的猜拳游戏
本文实例讲述了JavaScript基于面向对象实现的猜拳游戏。分享给大家供大家参考,具体如下:
html代码:
猜拳游戏 我:name
本文实例讲述了JavaScript基于面向对象实现的猜拳游戏。分享给大家供大家参考,具体如下:
html代码:
猜拳游戏 我: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%; } #gameul{ width:100%; height:415px; } #gameulli{ width:50%; height:100%; float:left; text-align:center; } #gameulli.anim{ width:223px; height:337px; border:10pxsolid#ff6699; border-radius:50%; margin:20pxauto0; 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.opbutton{ width:200px; height:60px; border:10pxsolid#ff6699; background:rgb(253,217,227); border-radius:50%; outline:none; cursor:pointer; font-weight:bold; } #game.opbutton:hover{ border-color:#ff0000; background-color:#ff0000; font-size:36px; color:rgb(253,217,227); } #game.opbutton.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; } #gameul.guessli{ width:100%; height:32%; } #gameul.guesslidiv{ width:100%; height:90%; border:10pxsolid#ff6699; border-radius:50%; background-position:center; background-repeat:no-repeat; cursor:pointer; background-color:rgba(244,184,202,1); } #gameul.guesslidiv:hover{ background-color:#ff6699; color:#fff; } div.guess0{ background-image:url('../img/0.png'); } div.guess1{ background-image:url('../img/1.png'); } div.guess2{ background-image:url('../img/2.png'); } #gamediv.text{ margin-top:20px; text-align:center; font-size:50px; font-weight:bold; }
js代码
Function.prototype.extend=function(fn){ for(varattrinfn.prototype){ this.prototype[attr]=fn.prototype[attr]; } } //父级构造函数用于继承,共有属性 functionCaiquan(name){ this.name=name; this.point=0; } //用于继承下面衍生,共有方法 Caiquan.prototype.guess=function(){} //继承父,玩家的构造函数 functionUser(name){ Caiquan.call(this,name); } User.extend(Caiquan); User.prototype.guess=function(point){ returnthis.point=point; } //电脑的构造函数 functionComp(name){ Caiquan.call(this,name); } Comp.extend(Caiquan); //电脑的猜拳方法,随机 Comp.prototype.guess=function(){ returnthis.point=Math.floor(Math.random()*3); } //裁判构造函数 functionGame(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(){ varThis=this; this.timer=setInterval(function(){ This.anim[0].className='animuserguess'+((This.num++)%3); This.anim[1].className='animcompguess'+((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); varuserGu=user.guess(point); varcompGu=comp.guess(); this.anim[0].className='animuserguess'+userGu; this.anim[1].className='animcompguess'+compGu; varres=userGu-compGu; switch(res){ case0: this.textValue('平局!!!') break; case1: case-2: this.textValue('lose~~~'); break; case2: case-1: this.textValue('win!!!') break; } this.guess.style.display='none'; this.BtnDisable(); } varuser=newUser('锐雯'); varcomp=newComp('拉克丝'); vargame=newGame(user,comp);
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。