Android studio五子棋源代码
时间: 2025-01-03 09:02:46 浏览: 49
以下是一个简单的Android Studio五子棋游戏源代码示例:
```java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.GridLayout;
import android.widget.ImageView;
public class GobangActivity extends Activity {
private static final int GRID_SIZE = 15;
private ImageView[][] grid = new ImageView[GRID_SIZE][GRID_SIZE];
private boolean[][] board = new boolean[GRID_SIZE][GRID_SIZE];
private boolean isBlackTurn = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gobang);
GridLayout gridLayout = findViewById(R.id.gridLayout);
gridLayout.setColumnCount(GRID_SIZE);
gridLayout.setRowCount(GRID_SIZE);
for (int i = 0; i < GRID_SIZE; i++) {
for (int j = 0; j < GRID_SIZE; j++) {
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.empty);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setPadding(2, 2, 2, 2);
imageView.setOnClickListener(new CellClickListener(i, j));
gridLayout.addView(imageView);
grid[i][j] = imageView;
}
}
}
private class CellClickListener implements View.OnClickListener {
private int row, col;
CellClickListener(int row, int col) {
this.row = row;
this.col = col;
}
@Override
public void onClick(View v) {
if (!board[row][col]) {
board[row][col] = true;
grid[row][col].setImageResource(isBlackTurn ? R.drawable.black : R.drawable.white);
if (checkWin(row, col)) {
showWinMessage();
} else {
isBlackTurn = !isBlackTurn;
}
}
}
}
private boolean checkWin(int row, int col) {
return checkDirection(row, col, 1, 0) || checkDirection(row, col, 0, 1) ||
checkDirection(row, col, 1, 1) || checkDirection(row, col, 1, -1);
}
private boolean checkDirection(int row, int col, int deltaRow, int deltaCol) {
int count = 1;
for (int i = 1; i <= 4; i++) {
if (isValid(row + i * deltaRow, col + i * deltaCol) && board[row + i * deltaRow][col + i * deltaCol] == board[row][col]) {
count++;
} else {
break;
}
}
for (int i = 1; i <= 4; i++) {
if (isValid(row - i * deltaRow, col - i * deltaCol) && board[row - i * deltaRow][col - i * deltaCol] == board[row][col]) {
count++;
} else {
break;
}
}
return count >= 5;
}
private boolean isValid(int row, int col) {
return row >= 0 && row < GRID_SIZE && col >= 0 && col < GRID_SIZE;
}
private void showWinMessage() {
// 显示胜利消息的逻辑
}
}
```
这段代码实现了一个基本的五子棋游戏:
1. 使用GridLayout创建15x15的棋盘。
2. 每个格子是一个ImageView,可以显示空白、黑子或白子。
3. 通过点击事件处理落子逻辑。
4. 实现了简单的胜利判断逻辑。
这个示例可以作为一个基础,你可以根据自己的需求进行扩展和优化。
阅读全文
相关推荐


















