项目介绍:
本次设计是基于知识点Java类和对象以及数组开发的一个小型五子棋游戏程序。游戏开始时,选择黑棋、白棋开局,将一枚棋子落在棋盘一坐标上,然后轮番落子,如此轮流下子,直到某一方首先在棋盘的竖、横或两斜四方向上的五子连成线,则该方该局获胜。
项目实现思路:
棋盘设计为10*10格,棋盘类型Chess[][] 二维数组,所含属性String chessType; 棋盘首先chessType值是”➕”。初始化二维数组玩家选择黑白圈后,开始下棋。输入要下棋子的行列坐标,黑白棋子轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋)。每一次落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是,⭕代表白棋,●代表黑棋,➕代表格子。
源代码
1.棋子
/**
* @author hudongsheng
* @date 2020/10/29 - 9:28
*/
public class ChessType {
private String chessType;
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public ChessType() {
}
public String getChessType() {
return chessType;
}
public void setChessType(String chessType) {
this.chessType = chessType;
}
}
2.下棋
/**
* @author hudongsheng
* @date 2020/10/29 - 9:27
*/
public class Gobang {
private int size = 1;
private ChessType[][] chessTypes;
private int row;
private int colum;
private int x;
private int y;
//创建一个棋盘
public Gobang(int row,int colum){
this.row = row;
this.colum = colum;
chessTypes = new ChessType[row][colum];
}
//初始化棋盘
public void initChessType(){
for(int i = 0; i= 5){
flag = true;
}
//右上 左下 是否有五个棋子是相同的颜色
int count3 = 1;
a = 1;
while((i+a)=0 && color == chessTypes[i+a][j-a].getChessType()){
count3++;
a++;
}
a = 1;
while((i-a)>=0 && (j+a)= 5){
flag = true;
}
//左上 右下 是否有五个棋子是相同的颜色
int count4 = 1;
a = 1;
while((i-a)>0 && (j-a)>=0 && color == chessTypes[i-a][j-a].getChessType()){
count4++;
a++;
}
a = 1;
while((i+a) |