给我一份点格棋的源代码
时间: 2023-12-12 17:05:00 浏览: 38
以下是一个简单的点棋游戏的 Python 代码示例:
```python
import random
class DotsGame:
def __init__(self, size):
self.size = size
self.board = [[0 for _ in range(size)] for _ in range(size)]
self.player = 1
self.game_over = False
def print_board(self):
print(" ", end="")
for i in range(self.size):
print(i, end=" ")
print()
print(" +-" + "--" * self.size + "+")
for i in range(self.size):
print(i, end="| ")
for j in range(self.size):
if self.board[i][j] == 0:
print(".", end=" ")
else:
print("O", end=" ")
print("|")
print(" +-" + "--" * self.size + "+")
def play(self, i, j):
if self.board[i][j] != 0:
return False
self.board[i][j] = self.player
self.check_for_win()
if not self.game_over:
self.player = 3 - self.player
return True
def check_for_win(self):
for i in range(self.size):
for j in range(self.size):
if self.board[i][j] == 0:
continue
if self.check_direction(i, j, 1, 0) or \
self.check_direction(i, j, 0, 1) or \
self.check_direction(i, j, 1, 1) or \
self.check_direction(i, j, 1, -1):
self.game_over = True
print("Player", self.player, "wins!")
def check_direction(self, i, j, di, dj):
count = 0
while i >= 0 and i < self.size and j >= 0 and j < self.size and \
self.board[i][j] == self.player:
count += 1
i += di
j += dj
return count >= 5
def play_game(self):
while not self.game_over:
self.print_board()
i, j = -1, -1
while i < 0 or i >= self.size or j < 0 or j >= self.size:
move = input("Player " + str(self.player) + "'s turn: ")
i, j = move.split(",")
i = int(i)
j = int(j)
self.play(i, j)
size = 15
game = DotsGame(size)
game.play_game()
```
这个代码实现了一个简单的15x15的点棋游戏,玩家可以交替地下棋,直到有一方连成了五个棋子为止。