Skip to content

Commit 46c36bf

Browse files
authored
Gomoku_game.py
1 parent c0b68a7 commit 46c36bf

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

Gomoku (Connect Five)/Gomoku_game.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
def create_board(size):
2+
return [[' ' for _ in range(size)] for _ in range(size)]
3+
4+
def display_board(board):
5+
size = len(board)
6+
for row in board:
7+
print(' | '.join(row))
8+
print('-' * (size * 4 - 1))
9+
10+
def check_win(board, row, col):
11+
size = len(board)
12+
player = board[row][col]
13+
14+
# Check horizontal
15+
for i in range(max(0, col - 4), min(size, col + 5)):
16+
if board[row][i:i + 5] == [player] * 5:
17+
return True
18+
19+
# Check vertical
20+
for i in range(max(0, row - 4), min(size, row + 5)):
21+
if all(board[i + j][col] == player for j in range(5)):
22+
return True
23+
24+
# Check diagonal (top-left to bottom-right)
25+
for i in range(max(0, row - 4), min(size - 4, row + 1)):
26+
if all(board[row + j][col + j] == player for j in range(5)):
27+
return True
28+
29+
# Check diagonal (bottom-left to top-right)
30+
for i in range(max(0, row - 4), min(size - 4, row + 1)):
31+
if all(board[row - j][col + j] == player for j in range(5)):
32+
return True
33+
34+
return False
35+
36+
def is_board_full(board):
37+
return all(board[row][col] != ' ' for row in range(len(board)) for col in range(len(board[0])))
38+
39+
def gomoku():
40+
size = 15
41+
board = create_board(size)
42+
player = 'X'
43+
44+
while True:
45+
display_board(board)
46+
47+
if is_board_full(board):
48+
print("It's a draw!")
49+
break
50+
51+
row = int(input(f"Player {player}, enter row (0-{size - 1}): "))
52+
col = int(input(f"Player {player}, enter column (0-{size - 1}): "))
53+
54+
if 0 <= row < size and 0 <= col < size and board[row][col] == ' ':
55+
board[row][col] = player
56+
57+
if check_win(board, row, col):
58+
display_board(board)
59+
print(f"Player {player} wins!")
60+
break
61+
62+
player = 'O' if player == 'X' else 'X'
63+
else:
64+
print("Invalid move. Try again.")
65+
66+
if __name__ == "__main__":
67+
gomoku()

0 commit comments

Comments
 (0)