77范文网 - 专业文章范例文档资料分享平台

计算机专业本科毕业论文(7)

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于Android平台五子棋游戏的设计与实现

}

if (chessMap[i][c] == chessType) else

break; count++;

// System.out.println(count +\if (count >= 5)

return true;

(2)横向搜索,检测是否有相同五子连成一线:

count = 1;

for (int i = c + 1; i < c + 5; i++) { }

for (int i = c - 1; i > c - 5; i--) { }

// System.out.println(count +\if (count >= 5)

return true; if (i < 0) else

break; break; count++;

if (chessMap[r][i] == chessType) if (i >= GameView.COLS) else

break; break; count++;

if (chessMap[r][i] == chessType)

(3)反斜向搜索,检测是否有相同五子连成一线:

count = 1;

for (int i = r + 1, j = c + 1; i < r + 5; i++, j++) {

if (i >= GameView.ROWS || j >= GameView.COLS) {

}

break;

if (chessMap[i][j] == chessType)

count++;

else

break;

22

基于Android平台五子棋游戏的设计与实现

}

for (int i = r - 1, j = c - 1; i > r - 5; i--, j--) { }

// System.out.println(count +\if (count >= 5)

return true; if (i < 0 || j < 0) else

break; break; count++;

if (chessMap[i][j] == chessType)

(4)斜向搜索,检测是否有相同五子连成一线:

count = 1;

for (int i = r + 1, j = c - 1; i < r + 5; i++, j--) { }

for (int i = r - 1, j = c + 1; i > r - 5; i--, j++) { }

// System.out.println(count +\if (count >= 5)

return true; return false;

if (i < 0 || j >= GameView.COLS) else

break; break; count++;

if (chessMap[i][j] == chessType) if (i >= GameView.ROWS || j < 0) else

break; break; count++;

if (chessMap[i][j] == chessType)

}

4.3.4 重新开始

此时再次点击屏幕,则会出现重新开始界面。点击重新开始,可以重新开始本局游戏。

23

基于Android平台五子棋游戏的设计与实现

图4.6 重新开始

该功能的实现代码如下:

public void reStart(){

initChess(); gameOver = false; }

new AlertDialog.Builder ( context )

.setTitle (\ 提示 \

.setMessage(\ 游戏已结束,是否重新开始? \

.setPositiveButton(\确定\ })

.setNegativeButton(\取消 \

@Override

public void onClick(DialogInterface dialog, int which) { }

reStart();

}

this.invalidate();

24

基于Android平台五子棋游戏的设计与实现

return super.onTouchEvent(event);

4.3.5 棋子类

在算法中,将棋子分为三种状态,分别是 活、死和半活状态,为系统的评分系统做准备。实现代码如下:

public enum ChessStatus {

ALIVE, DIED, HALFLIVE}

棋盘上的棋子分为三种,一种是白色,一种是黑色,另外一种是空,所以这三种状态用代码表示如下:

enum ChessType { NONE, }

WHITE, BLACK

4.3.6 辅助评分类

此类是用来辅助α-β剪枝算法的判定计算,用来计算下一步棋子的权重,并依此来选择下一步的落子点,提高AI智能程度。其实现代码如下:

public class ScoreTable {

private ScoreTable() {}

public final static int FIVE = 100;//成5

public final static int DOUBLE_ALIVE_FOUR = 99;//双活4(分析对手用)

public final static int ALIVE_FOUR_AND_DEAD_FOUR = 98;//活4死4(对手分析用) public final static int ALIVE_FOUR_AND_ALIVE_THREE = 96;//活4活3(分析对手用) public final static int ALIVE_FOUR_AND_DEAD_THREE = 95;//活4死3(分析对手用) public final static int ALIVE_FOUR_AND_ALIVE_TWO = 94;//活4活2 public final static int ALIVE_FOUR = 93;//活4

public final static int DOUBLE_DEAD_FOUR = 92;//双死4

public final static int DEAD_FOUR_AND_ALIVE_THREE = 91;//死4活3 public final static int DEAD_FOUR_AND_ALIVE_TWO = 90;//死4活2 public final static int DOUBLE_ALIVE_THREE = 80;//双活3

public final static int ALIVE_THREE_AND_DEAD_THREE = 70;//活死3

public final static int HALF_ALIVE_FOUR = 65;//半活4(类似○○ ○形),优先级小于活4 public final static int ALIVE_THREE = 60;//活3 public final static int DEAD_FOUR = 50;//死4

public final static int DOUBLE_ALIVE_TWO = 40;//双活2

25

基于Android平台五子棋游戏的设计与实现

public final static int DEAD_THREE = 30;//死3 public final static int ALIVE_TWO = 20;//活2 public final static int DEAD_TWO = 10;//死2 public final static int SINGLE = 0;//单个

}

4.3.7 开始控制类

该类用来控制游戏开始的方式及进入游戏主体的逻辑。主要代码如下:

public class StartActivity extends Activity {

}

private void Loading() { }

Intent intent = new Intent();

intent.setClass(StartActivity.this, MainActivity.class); startActivity(intent); StartActivity.this.finish(); });

@Override

public void onClick(View v) { }

Loading();

findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_start);

4.3.8 主要交互类

用来控制游戏界面交互相关事件。主要代码如下:

public class MainActivity extends Activity {

private Screen screen;

private GameView gameView = null; @Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); this.getScreen();// 得到屏幕的大小 gameView = new GameView(this); setContentView(gameView);

26

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机专业本科毕业论文(7)在线全文阅读。

计算机专业本科毕业论文(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/650847.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: