Rumah hujung hadapan web tutorial js 使用JavaScript如何实现猜拳游戏(详细教程)

使用JavaScript如何实现猜拳游戏(详细教程)

Jun 13, 2018 pm 05:44 PM
javascript berorientasikan objek

这篇文章主要介绍了JavaScript基于面向对象实现的猜拳游戏,结合完整实例形式分析了javascript基于面向对象实现猜拳游戏的具体页面布局、样式及功能相关操作技巧,需要的朋友可以参考下

本文实例讲述了JavaScript基于面向对象实现的猜拳游戏。分享给大家供大家参考,具体如下:

html代码:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>猜拳游戏</title>
 <link rel="stylesheet" href="css/game.css" rel="external nofollow" ></link>
 </head>
 <body>
  <p id="game">
    <ul class="panel">
      <li>
        <p class="name">我:name</p>
        <p class="anim user"></p>
      </li>
      <li>
        <p class="name">电脑:name</p>
        <p class="anim comp"></p>
      </li>
    </ul>
    <p class="op">
      <button id="play" onclick = "game.Caiquan();">开始</button>
    </p>
    <p id="text" class="text">请开始游戏...</p>
    <ul id="guess" class="guess">
      <li>
        <p class="guess0" onclick="game.verdict(0)">石头</p>
      </li>
      <li>
        <p class="guess1" onclick="game.verdict(1)">剪刀</p>
      </li>
      <li>
        <p class="guess2" onclick="game.verdict(2)">布</p>
      </li>
    </ul>
  </p>
  <script type="text/javascript" src="js/game.js"></script>
 </body>
</html>
Salin selepas log masuk

css样式(字体:迷你简卡通)

*{
  margin:0px;
  padding:0px;
  font-family:&#39;迷你简卡通&#39;;
  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(&#39;../img/readyl.png&#39;);
}
.comp{
  background:url(&#39;../img/readyr.png&#39;);
}
#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(&#39;../img/0.png&#39;);
}
p.guess1{
  background-image:url(&#39;../img/1.png&#39;);
}
p.guess2{
  background-image:url(&#39;../img/2.png&#39;);
}
#game p.text{
  margin-top:20px;
  text-align:center;
  font-size:50px;
  font-weight:bold;
}
Salin selepas log masuk

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(&#39;text&#39;);
  this.btn = document.getElementById("play");
  this.user = u;
  this.comp = c;
  this.classN =document.getElementsByClassName(&#39;name&#39;);
  this.guess = document.getElementById("guess");
  this.anim = document.getElementsByClassName("anim");
  this.num = 0;
  this.init();
  this.tiemr = null;
}
Game.prototype.Caiquan = function(){
  this.textValue( &#39;请出拳...&#39; );
  this.BtnDisable();
  this.start();
  this.guess.style.display = &#39;block&#39;;
}
//怎么玩
Game.prototype.start = function(){
  var This = this;
  this.timer = setInterval(function(){
    This.anim[0].className = &#39;anim user guess&#39; +( ( This.num ++ ) % 3 );
    This.anim[1].className = &#39;anim comp guess&#39; + ( ( This.num ++ ) % 3 ) ;
  },500)
}
//初始化名字
Game.prototype.init = function(){
  this.classN[0].innerHTML = &#39;我:&#39; + this.user.name;
  this.classN[1].innerHTML = &#39;电脑:&#39; + 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 =&#39;&#39;;
    this.btn.innerHTML = &#39;再来一次&#39;
  }else{
    this.btn.disabled = true;
    this.btn.className =&#39;disabled&#39;;
  }
}
Game.prototype.verdict = function( point ){
  clearInterval(this.timer);
  var userGu = user.guess(point);
  var compGu = comp.guess();
  this.anim[0].className = &#39;anim user guess&#39; + userGu;
  this.anim[1].className = &#39;anim comp guess&#39; + compGu;
  var res = userGu - compGu;
  switch (res){
    case 0:
    this.textValue(&#39;平局!!!&#39;)
      break;
    case 1:
    case -2:
    this.textValue(&#39;lose~~~&#39;);
    break;
    case 2:
    case -1:
    this.textValue(&#39;win!!!&#39;)
      break;
  }
  this.guess.style.display = &#39;none&#39;;
  this.BtnDisable();
}
var user = new User( &#39;锐雯&#39; );
var comp = new Comp( &#39;拉克丝&#39; );
var game = new Game( user , comp );
Salin selepas log masuk

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

详细解读vue-admin和后端(flask)分离结合

使用jquery+css3如何实现熊猫tv导航

在jQuery中如何实现定时隐藏对话框

在JS/jQuery中如何实现DIV延时几秒后消失或显示

使用原生js实现省市区三级联动

Atas ialah kandungan terperinci 使用JavaScript如何实现猜拳游戏(详细教程). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Terokai pengaturcaraan berorientasikan objek dalam Go Terokai pengaturcaraan berorientasikan objek dalam Go Apr 04, 2024 am 10:39 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek melalui definisi jenis dan perkaitan kaedah. Ia tidak menyokong warisan tradisional, tetapi dilaksanakan melalui gubahan. Antara muka menyediakan ketekalan antara jenis dan membenarkan kaedah abstrak ditakrifkan. Kes praktikal menunjukkan cara menggunakan OOP untuk mengurus maklumat pelanggan, termasuk mencipta, mendapatkan, mengemas kini dan memadam operasi pelanggan.

Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Jun 05, 2024 pm 09:39 PM

Amalan terbaik OOP dalam PHP termasuk konvensyen penamaan, antara muka dan kelas abstrak, pewarisan dan polimorfisme, dan suntikan kebergantungan. Kes praktikal termasuk: menggunakan mod gudang untuk mengurus data dan menggunakan mod strategi untuk melaksanakan pengisihan.

Analisis ciri berorientasikan objek bahasa Go Analisis ciri berorientasikan objek bahasa Go Apr 04, 2024 am 11:18 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek, mentakrifkan objek melalui struct, mentakrifkan kaedah menggunakan penerima penunjuk, dan melaksanakan polimorfisme melalui antara muka. Ciri berorientasikan objek menyediakan penggunaan semula kod, kebolehselenggaraan dan enkapsulasi dalam bahasa Go, tetapi terdapat juga pengehadan seperti kekurangan konsep tradisional kelas dan pewarisan dan hantaran tandatangan kaedah.

Adakah terdapat ciri berorientasikan objek seperti kelas di Golang? Adakah terdapat ciri berorientasikan objek seperti kelas di Golang? Mar 19, 2024 pm 02:51 PM

Tiada konsep kelas dalam erti kata tradisional dalam Golang (bahasa Go), tetapi ia menyediakan jenis data yang dipanggil struktur, yang melaluinya ciri berorientasikan objek yang serupa dengan kelas boleh dicapai. Dalam artikel ini, kami akan menerangkan cara menggunakan struktur untuk melaksanakan ciri berorientasikan objek dan menyediakan contoh kod konkrit. Definisi dan penggunaan struktur Pertama, mari kita lihat definisi dan penggunaan struktur. Di Golang, struktur boleh ditakrifkan melalui kata kunci jenis dan kemudian digunakan di mana perlu. Struktur boleh mengandungi atribut

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: Teknik nyahpepijat untuk pengaturcaraan berorientasikan objek Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: Teknik nyahpepijat untuk pengaturcaraan berorientasikan objek Jun 05, 2024 pm 08:50 PM

Dengan menguasai status objek penjejakan, menetapkan titik putus, pengecualian penjejakan dan menggunakan sambungan xdebug, anda boleh menyahpepijat kod pengaturcaraan berorientasikan objek PHP dengan berkesan. 1. Jejak status objek: Gunakan var_dump() dan print_r() untuk melihat atribut objek dan nilai kaedah. 2. Tetapkan titik putus: Tetapkan titik putus dalam persekitaran pembangunan, dan penyahpepijat akan berhenti seketika apabila pelaksanaan mencapai titik putus, menjadikannya mudah untuk menyemak status objek. 3. Pengecualian jejak: Gunakan blok try-catch dan getTraceAsString() untuk mendapatkan jejak tindanan dan mesej apabila pengecualian berlaku. 4. Gunakan penyahpepijat: Fungsi xdebug_var_dump() boleh memeriksa kandungan pembolehubah semasa pelaksanaan kod.

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Dec 17, 2023 pm 10:13 PM

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Pengenalan: Dengan pembangunan Internet, pengguna mempunyai keperluan yang lebih tinggi dan lebih tinggi untuk enjin carian masa nyata. Apabila mencari dengan enjin carian tradisional, pengguna perlu mengklik butang carian untuk mendapatkan hasil kaedah ini tidak dapat memenuhi keperluan pengguna untuk hasil carian masa nyata. Oleh itu, menggunakan teknologi JavaScript dan WebSocket untuk melaksanakan enjin carian masa nyata telah menjadi topik hangat. Artikel ini akan memperkenalkan secara terperinci penggunaan JavaScript

See all articles