* @param posY
*棋子的Y坐标
* @param ico
*棋子类型
* @return 如果有五颗相邻棋子连成一条直接,返回真,否则相反 。
*/
public boolean isWon(int posX, int posY, String ico) {
// 直线起点的X坐标
int startX = 0;
// 直线起点Y坐标
int startY = 0;
// 直线结束X坐标
int endX = Chessboard.BOARD_SIZE - 1;
// 直线结束Y坐标
int endY = endX;
// 同条直线上相邻棋子累积数
int sameCount = 0;
int temp = 0;
// 计算起点的最小X坐标与Y坐标
temp = posX - WIN_COUNT + 1;
startX = temp0 ? 0 : temp;
temp = posY - WIN_COUNT + 1;
startY = temp0 ? 0 : temp;
// 计算终点的最大X坐标与Y坐标
temp = posX + WIN_COUNT - 1;
endX = tempChessboard.BOARD_SIZE - 1 ? Chessboard.BOARD_SIZE - 1
: temp;
temp = posY + WIN_COUNT - 1;
endY = tempChessboard.BOARD_SIZE - 1 ? Chessboard.BOARD_SIZE - 1
: temp;
// 从左到右方向计算相同相邻棋子的数目
String[][] board = chessboard.getBoard();
for (int i = startY; iendY; i++) {
if (board[posX][i] == icoboard[posX][i + 1] == ico) {
sameCount++;
} else if (sameCount != WIN_COUNT - 1) {
sameCount = 0;
}
}
if (sameCount == 0) {
// 从上到下计算相同相邻棋子的数目
for (int i = startX; iendX; i++) {
if (board[i][posY] == icoboard[i + 1][posY] == ico) {
sameCount++;
} else if (sameCount != WIN_COUNT - 1) {
sameCount = 0;
}
}
}
if (sameCount == 0) {
// 从左上到右下计算相同相邻棋子的数目
int j = startY;
for (int i = startX; iendX; i++) {
if (jendY) {
if (board[i][j] == icoboard[i + 1][j + 1] == ico) {
sameCount++;
} else if (sameCount != WIN_COUNT - 1) {
sameCount = 0;
}
j++;
}
}
}
return sameCount == WIN_COUNT - 1 ? true : false;
}
public static void main(String[] args) throws Exception {
GobangGame gb = new GobangGame(new Chessboard());
gb.start();
}
}
求一个简单的JAVA五子棋代码?。?网上复制的别来了!以下是现写的 实现五子棋java代码了两人对战自己复制后运行把 没什么难度 类名 Games
import java.util.Scanner;
public class Games {
private String board[][];
private static int SIZE = 17;
private static String roles = "A玩家";
//初始化数组
public void initBoard() {
board = new String[SIZE][SIZE];
for (int i = 0; iSIZE; i++) {
for (int j = 0; jSIZE; j++) {
//if(i==0){
//String str = "";
//str += j+"";
//board[i][j]= str;
//}else if(i!=0j==0){
//String str = "";
//str += i+"";
//board[i][j]= str;
//}else{
board[i][j] = "╋";
//}
}
}
}
//输出棋盘
public void printBoard() {
for (int i = 0; iSIZE; i++) {
for (int j = 0; jSIZE; j++) {
System.out.print(board[i][j]);
}
System.out.println();
}
}
//判断所下棋子位置是否合理
public boolean isOk(int x, int y) {
boolean isRight = true;
if (x = 16 || x1 || y = 16 | y1) {
//System.out.println("输入错误五子棋java代码,请从新输入");
isRight = false;
}
if (board[x][y].equals("●") || board[x][y].equals("○")) {
isRight = false;
}
return isRight;
}
//判断谁赢了
public void whoWin(Games wz) {
// 从数组挨个查找找到某个类型的棋子就从该棋子位置向右五子棋java代码,向下五子棋java代码 , 斜向右下 各查找5连续的位置看是否为5个相同的
int xlabel;// 记录第一次找到某个棋子的x坐标
int ylabel;// 记录第一次找到某个棋子的y坐标
推荐阅读
- 虎牙直播要什么,虎牙直播什么时候上线的
- rxeon主板配什么cpu,支持rx560的主板
- 看微信直播骗术,看微信直播骗术揭秘
- python模型管道函数 python管道阻塞
- 还需不需要学jquery,学了jquery有必要学vue吗
- h3c路由器怎么查看负载,h3c查看端口负载
- 小学生三年级益智游戏大全,适合小学三年级玩的益智游戏
- vb.net的数据类型 vb6数据类型
- linux命令行有空格,命令行路径有空格