Repository navigation
Expand file tree
/
Copy pathGame.java
More file actions
128 lines (118 loc) · 3.1 KB
/
Copy pathGame.java
File metadata and controls
128 lines (118 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import java.util.Scanner;
public class Game{
private char[][] board;
private int row;
private int column;
private String player1;
private String player2;
private Scanner myScanner;
private boolean win;
public Game(){
row = 0;
column = 0;
myScanner = new Scanner(System.in);
board = new char[3][3];
for(int row = 0; row < board.length; row++) {
for(int col = 0; col < board[row].length; col++) {
board[row][col] = '-';
}
}
win = false;
}
public String getPlayer1(){
return player1;
}
public String getPlayer2(){
return player2;
}
public boolean getWin(){
return win;
}
public void setup(){
System.out.println("What is player 1's name?");
player1 = myScanner.nextLine();
System.out.println("What is player 2's name?");
player2 = myScanner.nextLine();
displayBoard();
}
public void displayBoard(){
System.out.println("\nCurrent Board: ");
for(int row = 0; row < board.length; row++) {
for(int col = 0; col < board[row].length; col++) {
System.out.print(board[row][col]);
}
System.out.println();
}
System.out.println();
}
public void turn(String player){
while(true){
System.out.println(player + "'s Turn:");
System.out.print(player + ", pick a row (0,1,2): ");
try{
row = Integer.parseInt(myScanner.nextLine());
}
catch (Exception e){
System.out.println("Invalid input!\n");
continue;
}
System.out.print(player + ", pick a column (0,1,2): ");
try{
column = Integer.parseInt(myScanner.nextLine());
}
catch (Exception e){
System.out.println("Invalid input!\n");
continue;
}
if(row>2 || row<0 || column>2 || column<0){
System.out.println("Invalid input!\n");
continue;
}
if(board[row][column] != '-'){
System.out.println("Somebody has already made a move there!\n");
continue;
}
break;
}
updateBoard(row, column, player);
}
public void updateBoard(int row, int column, String player){
if(player.equals(player1)){
board[row][column] = 'X';
displayBoard();
if(winCondition()){
gameOver(player1);
}
}
else{
board[row][column] = 'O';
displayBoard();
if(winCondition()){
gameOver(player2);
}
}
}
public boolean winCondition(){
for(int i = 0; i < 3; i++) {
if(board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != '-') {
return true;
}
}
for(int j = 0; j < 3; j++) {
if(board[0][j] == board[1][j] && board[1][j] == board[2][j] && board[0][j] != '-') {
return true;
}
}
if(board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != '-') {
return true;
}
if(board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[2][0] != '-') {
return true;
}
return false;
}
public void gameOver(String player){
win = true;
System.out.println("Congratulations! " + player + " has won!!\n");
}
}