基于Android五子棋.docx

上传人:b****6 文档编号:5997009 上传时间:2023-01-02 格式:DOCX 页数:36 大小:86.36KB
下载 相关 举报
基于Android五子棋.docx_第1页
第1页 / 共36页
基于Android五子棋.docx_第2页
第2页 / 共36页
基于Android五子棋.docx_第3页
第3页 / 共36页
基于Android五子棋.docx_第4页
第4页 / 共36页
基于Android五子棋.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

基于Android五子棋.docx

《基于Android五子棋.docx》由会员分享,可在线阅读,更多相关《基于Android五子棋.docx(36页珍藏版)》请在冰豆网上搜索。

基于Android五子棋.docx

基于Android五子棋

安卓五子棋游戏开发

今天我们来看一下Android下游戏的开发。

首先来看看整体的结构:

各个类的详细代码如下,附有详细注释:

MainActivity:

 

packagecom.example.gobang; 

importandroid.app.Activity; 

importandroid.content.Intent; 

importandroid.os.Bundle; 

importandroid.view.View; 

importandroid.view.View.OnClickListener; 

importandroid.widget.Button; 

//importcom.example.gobang.bt.BtGoBangActivity; 

importcom.example.gobang.mm.MMGobangActivity; 

importcom.example.gobang.R; 

publicclassMainActivityextendsActivityimplementsOnClickListener{ 

  @Override 

  protectedvoidonCreate(BundlesavedInstanceState){ 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.gobang); 

    Buttonb_mm=(Button)findViewById(R.id.b_mm); 

    Buttonb_bt=(Button)findViewById(R.id.b_bt); 

    b_mm.setOnClickListener(this); 

    b_bt.setOnClickListener(this); 

  } 

  @Override 

  publicvoidonClick(Viewv){ 

    switch(v.getId()){ 

      caseR.id.b_bt:

 

        //startActivity(newIntent(MainActivity.this,BtGoBangActivity.class)); 

      System.out.println("蓝牙版还未上线"); 

        break; 

      caseR.id.b_mm:

 

        startActivity(newIntent(MainActivity.this,MMGobangActivity.class)); 

        break; 

    } 

  } 

ChessFormUtil:

packagecom.example.gobang.mm; 

publicclassChessFormUtil{ 

  //定义各种棋形的分数 

  /**待分析的棋型列表的长度*/ 

  publicstaticfinalintANALYZE_LEN=8; 

  publicstaticfinalintHALF_LEN=ANALYZE_LEN>>1; 

  /** 

   *五连:

你只需下一步就可以胜利了 

   */ 

  publicstaticfinalintWU_LIAN=85; 

  /** 

   *活四:

两边都可成五的点 

   */ 

  publicstaticfinalintHUO_SI=40; 

  /** 

   *活三:

在走一步可以成活四的点 

   */ 

  publicstaticfinalintHUO_SAN=15; 

  /** 

   *冲四:

只有一端可成五的点 

   */ 

  publicstaticfinalintCHONG_SI=6; 

  /** 

   *活二:

在走一步可成活三的点 

   */ 

  publicstaticfinalintHUO_ER=4; 

  /** 

   *眠三:

在走一步可成冲四的点 

   */ 

  publicstaticfinalintMIAN_SAN=2; 

    

  /** 

   *眠二:

在走一步可成眠三的点 

   */ 

  publicstaticfinalintMIAN_ER=1; 

  //------------------------------------------------------------- 

  /** 

   *分析存在五连 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeWulian(int[]tmpChess,intisWho){ 

    intcount=0; 

    for(inti=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    for(inti=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(count==4){ 

      returntrue; 

    } 

    returnfalse; 

  } 

  /** 

   *  

   *分析活四return是否存在活四 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeHuosi(int[]tmpChess,intisWho){ 

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    }else{ 

      isSpace=false; 

    } 

    if(count==3&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

  /** 

   *  

   *分析活三return是否存在活三 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeHuosan(int[]tmpChess,intisWho){ 

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    }else{ 

      isSpace=false; 

    } 

    if(count==2&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

  /** 

   *  

   *分析冲四return是否存在冲四 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeChongsi(int[]tmpChess,intisWho){ 

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    } 

    if(count==3&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

  /** 

   *  

   *分析活二return是否存在活二 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeHuoEr(int[]tmpChess,intisWho){ 

      

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    }else{ 

      isSpace=false; 

    } 

    if(count==1&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

  /** 

   *  

   *分析眠三return是否存在眠三 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeMianSan(int[]tmpChess,intisWho){ 

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    } 

    if(count==2&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

    

  /** 

   *  

   *分析眠二return是否存在眠二 

   *  

   *@paramtmpChess 

   */ 

  publicbooleananalyzeMianEr(int[]tmpChess,intisWho){ 

    intcount=0; 

    inti=0; 

    booleanisSpace=false; 

    for(i=0;i

      if(tmpChess[HALF_LEN-(i+1)]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN-(i+1)]==0){ 

      isSpace=true; 

    } 

    for(i=0;i

      if(tmpChess[HALF_LEN+i]==isWho){ 

        count++; 

      }else{ 

        break; 

      } 

    } 

    if(tmpChess[HALF_LEN+i]==0){ 

      isSpace=true; 

    } 

    if(count==1&&isSpace){ 

      returntrue; 

    } 

    returnfalse; 

  } 

    

GobangView:

packagecom.example.gobang.mm; 

importandroid.content.Context; 

importandroid.content.res.Resources; 

importandroid.graphics.Bitmap; 

importandroid.graphics.BitmapFactory; 

importandroid.graphics.Canvas; 

importandroid.graphics.Color; 

importandroid.graphics.Paint; 

importandroid.graphics.Paint.Style; 

importandroid.graphics.drawable.Drawable; 

importandroid.util.AttributeSet; 

importandroid.util.Log; 

importandroid.view.KeyEvent; 

importandroid.view.MotionEvent; 

importandroid.view.View; 

importandroid.widget.TextView; 

importcom.example.gobang.R; 

classChessPoint{ 

  intx; 

  inty; 

  intscore; 

//publicclassGobangViewextendsViewimplementsRunnable{ 

publicclassGobangViewextendsView{ 

  privatefinalstaticintGRID_SIZE=13; 

  privatefinalstaticintCHESS_GRID=GRID_SIZE-1; 

  privatefinalstaticintCHECK_DIR=4;//当前位置的四个方向,横、竖、左斜、右斜 

  privateintmChessDia=22;//棋的直径 

  privateintmWidth;//棋盘格的宽度 

  privateintmStartX;//棋盘定位的左上角X 

  privateintmStartY;//棋盘定位的左上角Y 

  privateBitmap[]mChessBW;//黑棋和白棋 

  privateint[][]mChessTable=newint[CHESS_GRID][CHESS_GRID];//网格 

  privateint[][][]computerTable=newint[CHESS_GRID][CHESS_GRID][CHECK_DIR];//电脑

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1