基于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)在线全文阅读。
相关推荐: