本文实例为大家分享了JavaScript实现网页五子棋小游戏的具体代码,供大家参考,具体内容如下

设计思路如下:

1.先采用的Math.random()方法决定哪一方先行;

2.设置变量WFLAG = 1,BFLAG = 0时执白子,WFLAG = 0,BFLAG = 1时执黑子;

3.设置标志[I]中,当为白子时标志[I] = 1,当为黑子时标志[I] = 2,且标志[I]不为0时不能落子;

4.设置判断语句,当列5子时,竖5子,斜5子时为胜利,并计分;

5.重新开始 - 重新初始化变量。

采用的方法如下:

1. Math.random():随机产生0~1的随机数,含0但不包括1;

2. window.addEventListener(type,“javascript语句”,false):监听器,三个参数,第一个参数为所要监听的事件的类型(mousedown-鼠标按下,keydown-键盘按下等事件),第二个参数为发生事件后所要执行的JavaScript的语句,第三个参数可选,默认为假;

<!doctype html>
<html>
<head>
<title>五子棋</title>
<meta charset="utf-8">
<style>
*{
    padding:0;
    margin:0;
    }
#out{
    width:610px;
    height:610px;
    border:5px solid;
    position:absolute;
    margin-left:300px;
    margin-top:100px;
    }
#play{
    width:200px;
    height:80px;
    position:absolute;
    margin-left:500px;
    margin-top:0px;
    }
#start{
    width:100px;
    height:45px;
    border-radius:25px;
    position:absolute;
    margin-top:0px;
    margin-left:50px;
    font-size:20px;
    background-color:#CCFF66;
    }
span{
    width:80px;
    height:30px;
    position:absolute;
    margin-top:50px;
    border:1px solid;
    text-align:center;
    }
.wq{
    width:40px;
    height:40px;
    border-radius:40px;
    background-color:#999999;
    margin-left:7px;
    margin-top:0px;
    }
.bq{
    width:40px;
    height:40px;
    border-radius:40px;
    background-color:#000000;
    margin-left:7px;
    margin-top:0px;
    }
table tr{
    height:50px;
    }
table tr td{
    width:50px;
    height:50px;
    }
.block{
    width:50px;
    height:50px;
    }
#history{
    width:100px;
    height:50px;
    position:absolute;
    margin-top:40px;
    margin-left:720px;
    }
#return{
    width:100px;
    height:50px;
    background-color:#999900;
    border-radius:26px;
    font-size:17px;
    font-family:"Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New", monospace;
    font-style:oblique;
    }
.tab{
    width:100px;
    height:151px;
    position:absolute;
    margin-top:120px;
    }
.head{
    width:100px;
    height:50px;
    position:absolute;
    margin-top:0px;
    }
.score{
    width:100px;
    height:100px;
    position:absolute;
    margin-top:51px;
    }
.feshu{
    width:50px;
    height:100px;
    position:absolute;
    margin-top:0px;
    }
img{
    width:100%;
    height:100%;
    }
</style>
<script>
window.onload=function(){
    var white=document.getElementById("white");
    var black=document.getElementById("black");
    var start=document.getElementById("start");
    var out=document.getElementById("out");
    var le1=0,le2=0,ri1=0,ri2=0;
    var left1=document.getElementById("left1");
    var left2=document.getElementById("left2");
    var right1=document.getElementById("right1");
    var right2=document.getElementById("right2");
    var images=new Array("./images/s0.png","./images/s1.png","./images/s2.png","./images/s3.png","./images/s4.png","./images/s5.png","./images/s6.png","./images/s7.png","./images/s8.png","./images/s9.png");
function goal(le2,ri2){
    left1.src=images[le1];
    left2.src=images[le2];
    right1.src=images[ri1];
    right2.src=images[ri2];
}
    for(m=0;m<100;m  ){
        document.getElementsByTagName("td")[m].innerHTML='<div class="block" id="the' m '"></div>';
        }        
    //flag=1,不能放棋子
    var flag=new Array(100);
    for(var j=0;j<100;j  ){
        flag[j]=0;
    }
    //1-白子先行,2-黑子先行    
    var wflag=0,bflag=0,lflag=0;
    var turn=Math.floor(Math.random()*2);//0,1,如果是turn=0表示白子先行,=1表示黑子先行
    start.onclick=function(){
        if(turn 1==1){
               wflag=1;
               bflag=0;           
              }
        else{
               wflag=0;
               bflag=1;
              }  
        down(wflag,bflag);
        lflag=1;
           }
//重新开始
document.getElementById("return").onclick=kaishi;
function kaishi(){
    for(m=0;m<100;m  ){
        document.getElementsByTagName("td")[m].innerHTML='<div class="block" id="the' m '"></div>';
        }        
    out.style.cursor="default";
    for(var j=0;j<100;j  ){
        flag[j]=0;//flag重置为0
    }
        white.innerHTML="";
        black.innerHTML="";
        wflag=0,bflag=0,lflag=0;
        var turn=Math.floor(Math.random()*2);//0,1
        start.onclick=function(){
        if(turn 1==1){
               wflag=1;
               bflag=0;
              }
        else{
               wflag=0;
               bflag=1;
              }
        down(wflag,bflag);
        lflag=1;
           }
        win=0;
}
    function down(wflag,bflag){
        //下棋
        if(wflag==0 && bflag==1){
              black.innerHTML="黑方执子";
              white.innerHTML="白方等待";
              wflag=1;
              bflag=0;
              out.style.cursor="url(./images/cursor1.cur),auto";      
          }
        else{
              white.innerHTML="白方执子";
              black.innerHTML="黑方等待";
              wflag=0;
              bflag=1;
              out.style.cursor="url(./images/cursor2.cur),auto";
          }     
        happen(wflag,bflag);     
  }
function happen(wflag,bflag){
    if(wflag==0 && bflag==1){
        //白子
        fox("wq",wflag,bflag);
        }
        //黑子
    else{
        fox("bq",wflag,bflag);
        }
    }
function fox(color,wflag,bflag){
    for(var i=0;i<100;i  ){
        downup(i,color,wflag,bflag);
    }                
function downup(i,color,wflag,bflag){
            document.getElementById('the' i).onclick=function(){
                if(flag[i]!=0){alert("禁止放子!");}
                else{
                    document.getElementById('the' i).className=color;
                    if(color=="wq"){
                    flag[i]=1;
                    }
                    else{flag[i]=2;}
                    down(wflag,bflag);
                    }        
                 }
            }
    }
//胜利
var win=0;
//正5子
function zheng(){
    if(win==0){
     for(var p=0;p<100;p  ){
        if(flag[p]==1 && flag[p 1]==1 && flag[p 2]==1 && flag[p 3]==1 && flag[p 4]==1){
              var h=p 4
              if(h!=10 && h!==20 && h!==30 && h!==40 && h!=50 && h!==60 && h!==70 && h!==80 && h!==90 && h!==100){
                  alert("白方获胜!");
                  win=1;
                  le2  ;
                  goal(le2,ri2);
                 }
              else{return false;}
            }
        else if(flag[p]==2 && flag[p 1]==2 && flag[p 2]==2 && flag[p 3]==2 && flag[p 4]==2){
             var h=p 4
             if(h!=10 && h!==20 && h!==30 && h!==40 && h!=50 && h!==60 && h!==70 && h!==80 && h!==90 && h!==100){
                 alert("黑方获胜!");
                 win=1;
                 ri2  ;
                 goal(le2,ri2);
            }
            else{return false;}
        }
      }
    }
    else{return true;}
}
//竖5子 
function shu(){
    if(win==0){
     for(var p=0;p<100;p  ){
        if(flag[p]==1 && flag[p 10]==1 && flag[p 20]==1 && flag[p 30]==1 && flag[p 40]==1){
                  alert("白方获胜!");
                  win=1;
                  le2  ;
                  goal(le2,ri2);
            }
        else if(flag[p]==2 && flag[p 10]==2 && flag[p 20]==2 && flag[p 30]==2 && flag[p 40]==2){
                 alert("黑方获胜!");
                 win=1;
                 ri2  ;
                 goal(le2,ri2);
        }
      }
    }
    else{return true;}
    }
//左斜5子
function left(){
        if(win==0){
        for(var p=0;p<100;p  ){
        if(flag[p]==1 && flag[p 11]==1 && flag[p 22]==1 && flag[p 33]==1 && flag[p 44]==1){
                  alert("白方获胜!");
                  win=1;
                  le2  ;
                  goal(le2,ri2);
            }
        else if(flag[p]==2 && flag[p 11]==2 && flag[p 22]==2 && flag[p 33]==2 && flag[p 44]==2){
                 alert("黑方获胜!");
                 win=1;
                 ri2  ;
                 goal(le2,ri2);
        }
      }
    }
    else{return true;}
    }
//右斜5子
function right(){
        if(win==0){
        for(var p=0;p<100;p  ){
        if(flag[p]==1 && flag[p 9]==1 && flag[p 18]==1 && flag[p 27]==1 && flag[p 36]==1){
                  alert("白方获胜!");
                  win=1;
                  le2  ;
                  goal(le2,ri2); 
            }
        else if(flag[p]==2 && flag[p 9]==2 && flag[p 18]==2 && flag[p 27]==2 && flag[p 36]==2){
                 alert("黑方获胜!");
                 win=1;
                 ri2  ;
                 goal(le2,ri2);
        }
      }
    }
    else{return true;}
    }    
window.addEventListener('mousedown',zheng,false);
window.addEventListener('mousedown',shu,false);    
window.addEventListener('mousedown',left,false);    
window.addEventListener('mousedown',right,false);
window.addEventListener('mousedown',that,false);
}
</script>
</head>
<body>
<div id="play">
<button id="start">START</button>
<span id="white" style="margin-left:10px;"></span><span id="black" style="margin-left:110px;"></span>
</div>
<div id="history"><button id="return">重新开始</button></div>
<div class="tab" style="margin-left:0px;">
<div class="head"><img src="./images/baif.png" /></div>
<div class="score">
<div class="feshu" style="margin-left:0px;"><img src="./images/s0.png" id="left1" ></div>
<div class="feshu" style="margin-left:50px;"><img src="./images/s0.png" id="left2" ></div>
</div>
</div>
<div id="bi" style="position:absolute;width:18px;height:100px;margin-left:100px;margin-top:170px;"><img src="./images/bi.png" /></div>
<div class="tab" style="margin-left:120px;">
<div class="head"><img src="./images/heif.png" /></div>
<div class="score">
<div class="feshu" style="margin-left:0px;"><img src="./images/s0.png" id="right1" ></div>
<div class="feshu" style="margin-left:50px;"><img src="./images/s0.png" id="right2" ></div>
</div>
</div>
<div id="out">
<table width="600px" height="600px" border="1px" style="position:absolute;margin-top:4px;margin-left:4px;">
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr height="50px"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</table>
</div>
</body>
</html>

网页实现如下图:

1.打开网页;

2.点击开始按钮,随机选择白方还是黑方执先手;

3.下棋,任何一方赢取胜利后,弹窗显示,并计分;

4.胜利后可重新开局;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

JavaScript实现网页五子棋小游戏的更多相关文章

  1. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. swift皮筋弹动发射飞机ios源码

    这是一个款采用swift实现的皮筋弹动发射飞机游戏源码,游戏源码比较详细,大家可以研究学习一下吧。

  4. Swift与Js通过WebView交互

    开发环境:Swfit2.3XCode8.2基础概念jscontext,jscontext是代表JS的执行环境,通过-evaluateScript:方法就可以执行一JS代码JSValue,JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等JSExport,JSExport是一个协议,遵守此协议,就可以定义我们自己的协议,在协议中声明的API都会在JS中暴露出来,才能调用Swif

  5. JSCore swift

    如果双方相互引用,会造成循环引用,而导致内存泄露。以上是Jscore的基本使用,比较简单

  6. Swift WKWebView的js调用swift

    最近项目需求,需要用到JavaScriptCore和WebKit,但是网上的资源有限,而且比较杂,都是一个博客复制另外一个博客,都没有去实际敲代码验证,下面给大家分享一下我的学习过程。

  7. Swift WKWebView的swift调用js

    不多说,直接上代码:在html里面要添加的的代码,显示swift传过去的参数:这样就实现了swift给js传参数和调用!

  8. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    你有強烈的好奇心,希望在你的iOS專案中使用JavaScript。jscontext中的所有值都是JSValue對象,JSValue類用於表示任意類型的JavaScript值。因此,我們既需要寫Swift代碼也要寫JavaScript代碼。此外,我們還會在JavaScript中按照這個類的定義來創建一個對象并對其屬性進行賦值。從Swift中呼叫JavaScript就如介紹中所言,JavaScriptCore中最主要的角色就是jscontext類。一個jscontext對象是位於JavaScript環境和本

  9. swift - WKWebView JS 交互

    本文介绍WKWebView怎么与js交互,至于怎么用WKWebView这里就不介绍了HTML代码APP调JS代码结果JS给APP传参数首先注册你需要监听的js方法名2.继承WKScriptMessageHandler并重写userContentController方法,在该方法里接收JS传来的参数3.结果

  10. swift 开发UIWebView跟JS的交互

    前言作为小白的我,才开始入门IOS,选择了swift来进行入门学习,学习做着公司一个简单的小小项目,该项目需要进行跟H5进行交互,然后我就开始研究了UIWebView的使用,其实基本原理跟Android的一样,因为我是Android开发的,所以就顺水推舟了。))//这里设置你需要加载的地址}overridefuncdidReceiveMemoryWarning(){super.didReceiveMemoryWarning()//disposeofanyresourcesthatcanberecreate

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部