java井字棋游戏编程代码
时间: 2023-05-15 22:03:17 浏览: 158
Java井字棋是一种基于控制台输入的井字棋游戏,可以通过编写代码来实现。下面是关于Java井字棋游戏编程代码的介绍。
首先,我们需要定义一个二维数组来表示井字棋盘:
```java
char[][] board = new char[3][3];
```
然后,我们需要将井字棋盘初始化为一个空的棋盘:
```java
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
board[i][j] = '-';
}
}
```
接下来,我们需要实现控制台输入。可以使用Scanner类来读取用户的输入:
```java
Scanner scanner = new Scanner(System.in);
```
然后,我们需要让用户输入棋子的位置。可以使用以下方式来实现:
```java
System.out.print("Enter row and column number (example: 1 2) : ");
int row = scanner.nextInt();
int column = scanner.nextInt();
```
接着,我们需要根据用户输入的位置来更新井字棋盘。可以使用以下方法来实现:
```java
board[row-1][column-1] = currentPlayer;
```
在更新棋盘后,我们需要检查胜负情况。可以使用以下方法来实现:
```java
public boolean checkWinner(char[][] board, char currentPlayer){
for(int i=0; i<3; i++){
if(board[i][0] == currentPlayer && board[i][1] == currentPlayer && board[i][2] == currentPlayer){
return true;
}
if(board[0][i] == currentPlayer && board[1][i] == currentPlayer && board[2][i] == currentPlayer){
return true;
}
}
if(board[0][0] == currentPlayer && board[1][1] == currentPlayer && board[2][2] == currentPlayer){
return true;
}
if(board[0][2] == currentPlayer && board[1][1] == currentPlayer && board[2][0] == currentPlayer){
return true;
}
return false;
}
```
最后,我们需要交替切换玩家。可以使用以下方式来实现:
```java
if(currentPlayer == 'X'){
currentPlayer = 'O';
}else{
currentPlayer = 'X';
}
```
以上就是Java井字棋游戏编程代码的基本实现。完整代码请见下方:
```java
import java.util.Scanner;
public class TicTacToe {
public static void main(String[] args) {
char[][] board = new char[3][3];
char currentPlayer = 'X';
Scanner scanner = new Scanner(System.in);
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
board[i][j] = '-';
}
}
printBoard(board);
while(true){
System.out.print("Enter row and column number (example: 1 2) : ");
int row = scanner.nextInt();
int column = scanner.nextInt();
board[row-1][column-1] = currentPlayer;
printBoard(board);
if(checkWinner(board, currentPlayer)){
System.out.println(currentPlayer + " has won the game!");
break;
}
if(isDraw(board)){
System.out.println("It's a draw!");
break;
}
if(currentPlayer == 'X'){
currentPlayer = 'O';
}else{
currentPlayer = 'X';
}
}
}
public static void printBoard(char[][] board){
System.out.println("-------------");
for(int i=0; i<3; i++){
System.out.print("| ");
for(int j=0; j<3; j++){
System.out.print(board[i][j] + " | ");
}
System.out.println();
System.out.println("-------------");
}
}
public static boolean checkWinner(char[][] board, char currentPlayer){
for(int i=0; i<3; i++){
if(board[i][0] == currentPlayer && board[i][1] == currentPlayer && board[i][2] == currentPlayer){
return true;
}
if(board[0][i] == currentPlayer && board[1][i] == currentPlayer && board[2][i] == currentPlayer){
return true;
}
}
if(board[0][0] == currentPlayer && board[1][1] == currentPlayer && board[2][2] == currentPlayer){
return true;
}
if(board[0][2] == currentPlayer && board[1][1] == currentPlayer && board[2][0] == currentPlayer){
return true;
}
return false;
}
public static boolean isDraw(char[][] board){
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
if(board[i][j] == '-'){
return false;
}
}
}
return true;
}
}
```