Java 2d Array Tic Tac Toe-program
Java 2d Array Tic Tac Toe-program | Tic Tac Toe er et spil om nuller og krydser, der er 0'er og X'er. Dette spil spilles normalt af to spillere i et tre-til-tre-gitter. Spilleren, der placerer X'er eller 0'er vandret, lodret eller diagonalt, vil blive betegnet som vinderen. Forudsætning:- Multi-dimensional array i Java
Se f.eks. tic tac toe-brættet efter stykket skal se sådan ud:-
X X X
0 0 X
0 X 0
Den spiller, der har placeret X vandret, er vinderen.
X 0 0
0 0 X
0 X X
Den spiller, der har placeret 0 diagonalt, er vinderen.
Java 2d Array Tic Tac Toe-programkode
Lad os se tic tac toe Java-koden ved hjælp af 2d-array.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
char[][] board = new char[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
board[i][j] = '-';
}
}
Scanner scan = new Scanner(System.in);
System.out.println("Let's start the game TIC TAC TOE.");
System.out.print("Enter the name of Player1: ");
String play1 = scan.nextLine();
System.out.print("Enter the name of Player2: ");
String play2 = scan.nextLine();
boolean player1 = true;
boolean gameEnded = false;
while (!gameEnded) {
drawBoard(board);
if (player1) {
System.out.println(play1 + "'s Turn (X): ");
} else {
System.out.println(play2 + "'s Turn (O): ");
}
char c = '-';
if (player1) {
c = 'X';
} else {
c = 'O';
}
int row = 0;
int col = 0;
while (true) {
System.out.print("Enter a row number (0, 1, or 2): ");
row = scan.nextInt();
System.out.print("Enter a column number (0, 1, or 2): ");
col = scan.nextInt();
if (row < 0 || col < 0 || row > 2 || col > 2) {
System.out.println("This position is off the "+
"bounds of the board! Try again.");
} else if (board[row][col] != '-') {
System.out.println("Someone has already made a "+
"move at this position! Try again.");
} else {
break;
}
}
board[row][col] = c;
if (playerHasWon(board) == 'X') {
System.out.println(play1 + " has won!");
gameEnded = true;
} else if (playerHasWon(board) == 'O') {
System.out.println(play2 + " has won!");
gameEnded = true;
} else {
if (boardIsFull(board)) {
System.out.println("It's a tie!");
gameEnded = true;
} else {
player1 = !player1;
}
}
}
drawBoard(board);
scan.close();
}
public static void drawBoard(char[][] board) {
System.out.println("Board:");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(board[i][j]);
}
System.out.println();
}
}
public static char playerHasWon(char[][] board) {
for (int i = 0; i < 3; i++) {
if (board[i][0] == board[i][1] &&
board[i][1] == board[i][2] &&
board[i][0] != '-') {
return board[i][0];
}
}
for (int j = 0; j < 3; j++) {
if (board[0][j] == board[1][j] &&
board[1][j] == board[2][j] &&
board[0][j] != '-') {
return board[0][j];
}
}
if (board[0][0] == board[1][1] &&
board[1][1] == board[2][2] &&
board[0][0] != '-') {
return board[0][0];
}
if (board[2][0] == board[1][1] &&
board[1][1] == board[0][2] &&
board[2][0] != '-') {
return board[2][0];
}
return ' ';
}
public static boolean boardIsFull(char[][] board) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (board[i][j] == '-') {
return false;
}
}
}
return true;
}
}
Outputtet af tic tac toe Java-kode ved hjælp af 2d array:-
Lad os starte spillet TIC TAC TOE.
Indtast navnet på Player1:Amelia
Indtast navnet på Player2:Jhon
Bræt:---
---
---
Amelia's Turn (X):
Indtast et rækkenummer (0, 1 eller 2):0
Indtast et kolonnenummer (0, 1 eller 2):0
Board:X--
---
---
Jhons tur (O):
Indtast et rækkenummer (0, 1 eller 2):0
Indtast et kolonnenummer (0, 1 eller 2):2
Board:
X-O---
---
Amelia's Turn (X):
Indtast et rækkenummer (0, 1 eller 2):1
Indtast et kolonnenummer (0, 1 eller 2):1
Board:
X-O
-X----
Jhons tur (O):
Indtast et rækkenummer (0, 1 eller 2):1
Indtast et kolonnenummer (0, 1 eller 2):2
Board:
X-O
-XO---
Amelia's Turn (X):
Indtast et rækkenummer (0, 1 eller 2):2
Indtast et kolonnenummer (0, 1 eller 2):2
Amelia har vundet!
Bestyrelse:
X-O
-XO--X
I ovenstående Java 2d array tic tac toe tog vi en 3×3 matrix. Denne 2d-matrix initialiseres med tegnet '-'. Senere input til matricen bliver bedt om fra brugeren. Baseret på den indtastede værdi, hvis en tic tac toe match er fundet, vinder brugeren.