< COLS; j++) {
board[i][j].setBackground(BOARD_COLOR);
boardStatus[i][j] = 0;
在Python中,可以使用sort()方法对列表进行排序,也可以使用sorted()函数对列表进行排序。
sort()方法用于在原列表上排序,使用方法如下:
```python
my_list = [3, 1, 4, 1 }
}
currentPlayer = 1;
if (player1Color == BLACK_COLOR) {
turnLabel.setText("Black's, 5, 9, 2, 6]
my_list.sort()
print(my_list) # 输出 [1, 1 turn");
} else {
turnLabel.setText("White's turn");
}
if (gameMode == 0) {
machineBtn.setEnabled(false);
} else {
machineBtn.setEnabled(true);
if (machineFirst) {
machinePlay();
}
, 2, 3, 4, 5, 6, 9]
```
如果需要对列表进行降序排序,可以传入`reverse=True`参数:
```python
my_list = [3, 1, 4, 1, }
}
// 根据当前棋盘状态进行AI下棋
private void machinePlay() {
int[] move5, 9, 2, 6]
my_list.sort(reverse=True)
print(my_list) # 输出 [9, 6 = AI.getMove(boardStatus, machineColor);
boardStatus[move[0]][move[1]] = 2;
board[, 5, 4, 3, 2, 1, 1]
```
sorted()函数返回一个新列表,move[0]][move[1]].setBackground(machineColor);
if (checkWin(move[0], move[1])) {
showMessage(W使用方法如下:
```python
my_list = [3, 1, 4, 1, 5, 9,HITE_WIN_MSG);
newGame();
} else if (checkFull()) {
showMessage(DRAW_MSG);
newGame();
2, 6]
new_list = sorted(my_list)
print(new_list) # 输出 [1, 1, 2, } else {
currentPlayer = 1;
turnLabel.setText("Black's turn");
}
}
// 判断是否有一 3, 4, 5, 6, 9]
```
同样,可以传入`reverse=True`参数对方获胜
private boolean checkWin(int row, int col) {
int[][] deltas = {{0, 1}, {1, 0}, {1, 1}, {1, -1}};
for (int[] delta : deltas) {
int seq列表进行降序排序:
```python
my_list = [3, 1, 4, 1, 5, 9Len = 1;
int r = row + delta[0], c = col + delta[1];
while (r >= 0 && r < ROWS && c >= 0 && c < COLS && boardStatus[r][c] == currentPlayer) {
seqLen++;
r += delta[0];
c += delta[1];
}
r = row - delta[0];
c = col - delta[1];
while (r >= 0 && r < ROWS && c >= 0 && c < COLS && boardStatus[r][c] == currentPlayer) {
seqLen++;
r -= delta[0];
c -= delta[1];
}
if (seqLen >= WIN_SEQ_LEN) {
return true;
}
}
return false;
}
// 判断棋盘是否已满
private boolean checkFull() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (boardStatus[i][j] == 0) {
return false;
}
}
}
return true;
}
// 显示游戏结果
private void showMessage(String msg) {
JOptionPane.showMessageDialog(this, msg, TITLE, JOptionPane.INFORMATION_MESSAGE);
}
public static void main(String[] args) {
new Game();
}
}
```
AI.java
```java
import java.util.ArrayList;
import java.util.List;
public class AI {
private static final int INF = 1000000;
private static final int[][] deltas = {{0, 1}, {1, 0}, {1, 1}, {1, -1}};
// 获取AI的下一步走法
public static int[] getMove(int[][] boardStatus, int color) {
int[] move = {-1, -1, -1};
int score = -INF;
List<int[]> moves = generateMoves(boardStatus);
for (int[] pos : moves) {
int row = pos[0], col = pos[1];
int[][] newBoardStatus = copyBoard(boardStatus);
newBoardStatus[row][col] = 2;
int newScore = negamax(newBoardStatus, -INF, INF, 1, color);
if (newScore > score) {
score = newScore;
move[0] = row;
move[1] = col;
move[2] = newScore;
}
}
return move;
}
// 生成所有可行走法