Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 46c36bf

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /