温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaScript如何实现网页版五子棋游戏

发布时间:2021-07-31 11:49:46 来源:亿速云 阅读:206 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关JavaScript如何实现网页版五子棋游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

本程序主要通过三部分实现:

1.棋盘绘制
2.鼠标交互
3.输赢判断

<!DOCTYPE html> <html> <head>   <title>     canvastest     </title> </head> <body>      <h2> canvas</h2>      <canvas id="canvas"width="400"height="400">      </canvas>      <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>   <script>    var canv=document.getElementById("canvas");    var ctx=canv.getContext("2d");    ctx.strokeStyle="black";    var bow=0; //画出棋盘; var matrix=[   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],   [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],                                               ]; ctx.beginPath(); for(var i=0;i<19;i++){        ctx.moveTo(10+20*i,10);        ctx.lineTo(10+i*20,370);        ctx.moveTo(10,20*i+10);        ctx.lineTo(370,i*20+10); }  ctx.stroke();    //鼠标交互;   $("#canvas").click(function(event)       {       console.log(event.offsetX)       console.log(bow);       var arcPosX,arcPosY;      var mtxPosX,mtxPosY;       for(var x=0;x<19;x++)       {       if((Math.abs(event.offsetX-(10+x*20)))<10)         {        arcPosX=10+x*20;        mtxPosX=x;         }       if((Math.abs(event.offsetY-(10+x*20)))<10)          {         arcPosY=10+x*20;         mtxPosY=x;           }       }       if(matrix[mtxPosX][mtxPosY] == 0)       {       bow=!bow;       ctx.beginPath();       if(bow){       ctx.fillStyle="Black";       ctx.arc(arcPosX,arcPosY,10,0,Math.PI*2,false);       matrix[mtxPosX][mtxPosY]=1;       }       else{       ctx.fillStyle="White";       ctx.arc(arcPosX,arcPosY,10,0,Math.PI*2,false);       ctx.stroke();       matrix[mtxPosX][mtxPosY]=2;       }       ctx.fill();       }       //实现输赢判断       var winFlag=0; if(winFlag==0){ if(matrix[mtxPosX-1][mtxPosY] == matrix[mtxPosX][mtxPosY])               {                if(matrix[mtxPosX-2][mtxPosY] == matrix[mtxPosX][mtxPosY])                {                 if(matrix[mtxPosX-3][mtxPosY] == matrix[mtxPosX][mtxPosY])                 {                  if(matrix[mtxPosX-4][mtxPosY] == matrix[mtxPosX][mtxPosY])                  {                   winFlag = 1;                  }                  else                  {                   if(matrix[mtxPosX+1][mtxPosY] == matrix[mtxPosX][mtxPosY])                   {                    winFlag = 1;                   }                   else                   {                    winFlag = 0;                   }                  }                 }                 else                 {                  for(var w = 0; w < 2 ; w ++)                  {                   if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])                   {                    winFlag = 0;                    break;                   }                   else                   {                    winFlag = 1;                   }                  }                 }                }                else                {                 for(var w = 0; w < 3 ; w ++)                 {                  if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])                  {                   winFlag = 0;                   break;                  }                  else                  {                   winFlag = 1;                  }                 }                }               }               else               {                for(var w = 0; w < 4 ; w ++)                {                 if(matrix[mtxPosX+w+1][mtxPosY] != matrix[mtxPosX][mtxPosY])                 {                  winFlag = 0;                  break;                 }                 else                 {                  winFlag = 1;                 }                }               } if(matrix[mtxPosX][mtxPosY-1] == matrix[mtxPosX][mtxPosY])               {                if(matrix[mtxPosX][mtxPosY-2] == matrix[mtxPosX][mtxPosY])                {                 if(matrix[mtxPosX][mtxPosY-3] == matrix[mtxPosX][mtxPosY])                 {                  if(matrix[mtxPosX][mtxPosY-4] == matrix[mtxPosX][mtxPosY])                  {                   winFlag = 1;                  }                  else                  {                   if(matrix[mtxPosX][mtxPosY+1] == matrix[mtxPosX][mtxPosY])                   {                    winFlag = 1;                   }                   else                   {                    winFlag = 0;                   }                  }                 }                 else                 {                  for(var w = 0; w < 2 ; w ++)                  {                   if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                   {                    winFlag = 0;                    break;                   }                   else                   {                    winFlag = 1;                   }                  }                 }                }                else                {                 for(var w = 0; w < 3 ; w ++)                 {                  if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                  {                   winFlag = 0;                   break;                  }                  else                  {                   winFlag = 1;                  }                 }                }                          }               else               {                for(var w = 0; w < 4 ; w ++)                {                 if(matrix[mtxPosX][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                 {                  winFlag = 0;                  break;                 }                 else                 {                  winFlag = 1;                 }                }               }   if(matrix[mtxPosX-1][mtxPosY-1] == matrix[mtxPosX][mtxPosY])                 {                  if(matrix[mtxPosX-2][mtxPosY-2] == matrix[mtxPosX][mtxPosY])                  {                   if(matrix[mtxPosX-3][mtxPosY-3] == matrix[mtxPosX][mtxPosY])                   {                    if(matrix[mtxPosX-4][mtxPosY-4] == matrix[mtxPosX][mtxPosY])                    {                     winFlag = 1;                    }                    else                    {                     if(matrix[mtxPosX+1][mtxPosY+1] == matrix[mtxPosX][mtxPosY])                     {                      winFlag = 1;                     }                     else                     {                      winFlag = 0;                     }                    }                   }                   else                   {                    for(var w = 0; w < 2 ; w ++)                    {                     if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                     {                      winFlag = 0;                      break;                     }                     else                     {                      winFlag = 1;                     }                    }                   }                  }                  else                  {                   for(var w = 0; w < 3 ; w ++)                   {                    if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                    {                     winFlag = 0;                     break;                    }                    else                    {                     winFlag = 1;                    }                   }                  }                 }                 else                 {                  for(var w = 0; w < 4 ; w ++)                  {                   if(matrix[mtxPosX+w+1][mtxPosY+w+1] != matrix[mtxPosX][mtxPosY])                   {                    winFlag = 0;                    break;                   }                   else                   {                    winFlag = 1;                   }                  }               }    if(matrix[mtxPosX-1][mtxPosY+1] == matrix[mtxPosX][mtxPosY])               {                if(matrix[mtxPosX-2][mtxPosY+2] == matrix[mtxPosX][mtxPosY])                {                 if(matrix[mtxPosX-3][mtxPosY+3] == matrix[mtxPosX][mtxPosY])                 {                  if(matrix[mtxPosX-4][mtxPosY+4] == matrix[mtxPosX][mtxPosY])                  {                   winFlag = 1;                  }                  else                  {                   if(matrix[mtxPosX+1][mtxPosY-1] != matrix[mtxPosX][mtxPosY])                   {                    winFlag = 0;                   }                   else                   {                    winFlag = 1;                   }                  }                 }                 else                 {                  for(var w = 0; w < 2 ; w ++)                  {                   if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])                   {                    winFlag = 0;                    break;                   }                   else                   {                    winFlag = 1;                   }                  }                 }                }                else                {                 for(var w = 0; w < 3 ; w ++)                 {                  if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])                  {                   winFlag = 0;                   break;                  }                  else                  {                   winFlag = 1;                  }                 }                }               }               else               {                for(var w = 0; w < 4 ; w ++)                {                 if(matrix[mtxPosX+w+1][mtxPosY-w-1] != matrix[mtxPosX][mtxPosY])                 {                  winFlag = 0;                  break;                 }                 else                 {                  winFlag = 1;                 }                }               }     }               if(winFlag ==1){          if(bow)          alert("black win!");          else                          alert("white win!");               }       });   </script> </body> </html>

JavaScript如何实现网页版五子棋游戏

关于“JavaScript如何实现网页版五子棋游戏”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI