Skip to content

Commit b431c2f

Browse files
authored
Merge pull request #186 from brundabharadwaj/feature/gaming-apps
tic tac toe game
2 parents 91e7f85 + 45e1e54 commit b431c2f

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
def print_board(board):
2+
for row in board:
3+
print("|".join(row))
4+
print("-" * 5)
5+
6+
def check_win(board):
7+
# Check rows, columns, diagonals
8+
for i in range(3):
9+
if board[i][0] == board[i][1] == board[i][2] != ' ':
10+
return True
11+
if board[0][i] == board[1][i] == board[2][i] != ' ':
12+
return True
13+
if board[0][0] == board[1][1] == board[2][2] != ' ':
14+
return True
15+
if board[0][2] == board[1][1] == board[2][0] != ' ':
16+
return True
17+
return False
18+
19+
def main():
20+
board = [[' '] * 3 for _ in range(3)]
21+
current_player = 'X'
22+
23+
for _ in range(9):
24+
print_board(board)
25+
while True:
26+
try:
27+
row, col = map(int, input(f"Player {current_player}, enter row and column (0, 1, 2) separated by space: ").split())
28+
if board[row][col] == ' ':
29+
board[row][col] = current_player
30+
break
31+
else:
32+
print("Cell is already occupied. Try again.")
33+
except (ValueError, IndexError):
34+
print("Invalid input. Try again.")
35+
36+
if check_win(board):
37+
print_board(board)
38+
print(f"Player {current_player} wins!")
39+
return
40+
41+
current_player = 'O' if current_player == 'X' else 'X'
42+
43+
print_board(board)
44+
print("It's a draw!")
45+
46+
if __name__ == "__main__":
47+
main()

0 commit comments

Comments
 (0)