提交 cc414d85 编写于 作者: D dl11007

upload

上级 0a575cc3
run = "pip install -r requirements.txt;python main.py"
language = "python" language = "python"
[packager]
AUTO_PIP = true
[env]
VIRTUAL_ENV = "/root/${PROJECT_DIR}/venv"
PATH = "${VIRTUAL_ENV}/bin:${PATH}"
PYTHONPATH = "$PYTHONHOME/lib/python3.10:${VIRTUAL_ENV}/lib/python3.10/site-packages"
REPLIT_POETRY_PYPI_REPOSITORY = "http://mirrors.csdn.net.cn/repository/csdn-pypi-mirrors/simple"
MPLBACKEND = "TkAgg"
POETRY_CACHE_DIR = "/root/${PROJECT_DIR}/.cache/pypoetry"
[debugger] [debugger]
program = "main.py" program = "main.py"
{ pkgs }: {
deps = [
pkgs.python310Packages.pip
pkgs.python310Full
];
}
\ No newline at end of file
print('欢迎来到 InsCode') import numpy as np
\ No newline at end of file
# 创建棋盘
board_size = 15
board = np.zeros((board_size, board_size))
# 定义棋子的标记
EMPTY = 0
BLACK = 1
WHITE = 2
# 定义游戏状态
GAME_CONTINUE = 0
GAME_OVER = 1
# 当前玩家,默认黑棋先下
current_player = BLACK
# 检查是否五子连珠
def check_win(row, col):
# 水平方向
count = 1
for c in range(col - 1, -1, -1):
if board[row, c] == board[row, col]:
count += 1
else:
break
for c in range(col + 1, board_size):
if board[row, c] == board[row, col]:
count += 1
else:
break
if count >= 5:
return True
# 垂直方向
count = 1
for r in range(row - 1, -1, -1):
if board[r, col] == board[row, col]:
count += 1
else:
break
for r in range(row + 1, board_size):
if board[r, col] == board[row, col]:
count += 1
else:
break
if count >= 5:
return True
# 左斜方向
count = 1
r, c = row - 1, col - 1
while r >= 0 and c >= 0:
if board[r, c] == board[row, col]:
count += 1
else:
break
r -= 1
c -= 1
r, c = row + 1, col + 1
while r < board_size and c < board_size:
if board[r, c] == board[row, col]:
count += 1
else:
break
r += 1
c += 1
if count >= 5:
return True
# 右斜方向
count = 1
r, c = row - 1, col + 1
while r >= 0 and c < board_size:
if board[r, c] == board[row, col]:
count += 1
else:
break
r -= 1
c += 1
r, c = row + 1, col - 1
while r < board_size and c >= 0:
if board[r, c] == board[row, col]:
count += 1
else:
break
r += 1
c -= 1
if count >= 5:
return True
return False
# 打印棋盘
def print_board():
# 打印列号
print(' ', end='')
for col in range(board_size):
print(col, end=' ')
print()
for row in range(board_size):
# 打印行号
print(row, end=' ')
for col in range(board_size):
if board[row, col] == EMPTY:
print('. ', end='')
elif board[row, col] == BLACK:
print('X ', end='')
elif board[row, col] == WHITE:
print('O ', end='')
print()
# 游戏循环
while True:
print_board()
# 输入下棋位置
row_input = input("请输入下棋行号:")
while not row_input.isdigit():
row_input = input("行号不能为空或者非数字,请重新输入下棋行号:")
col_input = input("请输入下棋列号:")
while not col_input.isdigit():
col_input = input("行号不能为空或者非数字,请重新输入下棋行号:")
row = int(row_input)
col = int(col_input)
# 检查是否合法位置
if row < 0 or row >= board_size or col < 0 or col >= board_size or board[row, col] != EMPTY:
print("非法位置,请重新输入!")
continue
# 下棋
board[row, col] = current_player
# 检查游戏状态
if check_win(row, col):
print_board()
print("玩家", current_player, "获胜!")
break
# 切换玩家
current_player = WHITE if current_player == BLACK else BLACK
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册