使用HTML,css,javaScript写五子棋小游戏

这里只有双人模式(程序可以直接运行,只需要三张图,都放下面了)
效果如图:
在这里插入图片描述
这里需要三张图(以下三张图均来源于百度):
背景图:
在这里插入图片描述 白子图:
在这里插入图片描述
黑子图:在这里插入图片描述
罗辑如下:设置20X15的棋盘用300个浮动的小盒子,当用户点击要下的盒子时,改变其背景图片,通过点击次数判定要下的黑子还是白子,从而实现下棋。通过js的点击事件,每下一子都进行全局判定,判定是否有人胜利。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
  .a{
      width: 1000px;
      height: 1000px;
      margin: 100px auto 0;
  }
  .a div{
      float: left;
      width: 50px;
      height: 50px;
      background-image: url(../img/QQ截图20210527120353.png) ;
  }
</style>
<body>
    <div class="a"></div>
</body>
<script>
 //设置棋盘大小为20X10
    var aa=document.querySelector('.a');
    for(var i=0;i<600;i++){
        var ab=document.createElement('div');
        aa.append(ab);
        i++;
    }
    
    var a=document.querySelector('div').children;
    var j1=0;//判定点击次数
    for(var i=0;i<a.length;i++){
        a[i].setAttribute('nam',i);
        a[i].nam=0;
          a[i].addEventListener('click',fn);
          //点击后换图
       function fn(){
           if(j1%2==0){
          this.style.backgroundImage="url(../img/QQ截图20210527120333.png)";
            this.nam=1;
            }else{
            this.style.backgroundImage="url(../img/QQ截图20210527120312.png)";
            this.nam=2;
           }
          j1++;
          //点击后判定是否胜利
         function x(e){
             if(e>299||e<0){
                 return 0;
             }else{
                 return a[e].nam;
             }
         }
        
          for(var j=0;j<a.length;j++ ){
             
            if(x(j)==1&&x(j+1)==1&&x(j+2)==1&&x(j+3)==1&&x(j+4)==1){ alert('黑方胜利');}
        else if (x(j)==1&&x(j+20)==1&&x(j+40)==1&&x(j+60)==1&&x(j+80)==1){alert('黑方胜利');}
        else if (x(j)==1&&x(j+21)==1&&x(j+42)==1&&x(j+63)==1&&x(j+84)==1){alert('黑方胜利');}
        else if (x(j)==1&&x(j-19)==1&&x(j-38)==1&&x(j-57)==1&&x(j-76)==1){alert('黑方胜利');}
        else if (x(j)==2&&x(j+1)==2&&x(j+2)==2&&x(j+3)==2&&x(j+4)==2){ alert('白方胜利');}
        else if (x(j)==2&&x(j+20)==2&&x(j+40)==2&&x(j+60)==2&&x(j+80)==2){alert('白方胜利');}
        else if (x(j)==2&&x(j+21)==2&&x(j+42)==2&&x(j+63)==2&&x(j+84)==2){alert('白方胜利');}
        else if (x(j)==2&&x(j-19)==2&&x(j-38)==2&&x(j-57)==2&&x(j-76)==2){alert('白方胜利');}
      }
         this.removeEventListener('click',fn);
        }
}
</script>
</html>
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值