写一份消消乐代码
由于消消乐有多种玩法,我假设你想要一个基于经典消消乐的代码。下面是一个示例代码:
import random
# 定义棋盘大小和颜色
BOARD_SIZE = 8
COLORS = ['R', 'G', 'B', 'Y', 'P']
# 初始化棋盘
board = []
for i in range(BOARD_SIZE):
row = [random.choice(COLORS) for j in range(BOARD_SIZE)]
board.append(row)
# 打印棋盘
def print_board(board):
for row in board:
print(row)
print_board(board)
# 消除相邻的同色方块
def remove_adjacent(board, x, y):
color = board[x][y]
if color == '-':
return
board[x][y] = '-'
if x > 0 and board[x-1][y] == color:
remove_adjacent(board, x-1, y)
if x < BOARD_SIZE-1 and board[x+1][y] == color:
remove_adjacent(board, x+1, y)
if y > 0 and board[x][y-1] == color:
remove_adjacent(board, x, y-1)
if y < BOARD_SIZE-1 and board[x][y+1] == color:
remove_adjacent(board, x, y+1)
# 循环消除所有相邻的同色方块
def remove_all_adjacent(board):
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE):
remove_adjacent(board, i, j)
# 移动方块使得相邻的同色方块相连
def move_blocks(board):
moved = False
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE):
if board[i][j] == '-':
if i > 0 and board[i-1][j] != '-':
board[i][j] = board[i-1][j]
board[i-1][j] = '-'
moved = True
elif j > 0 and board[i][j-1] != '-':
board[i][j] = board[i][j-1]
board[i][j-1] = '-'
moved = True
if moved:
move_blocks(board)
# 循环玩家移动
while True:
print('Enter the row and column to remove (or enter quit to end):')
move = input()
if move == 'quit':
break
x, y = move.split()
x = int(x)
y = int(y)
if x < 0 or x >= BOARD_SIZE or y < 0 or y >= BOARD_SIZE:
print('Invalid move. Try again.')
continue
if board[x][y] == '-':
print('No block at that position. Try again.')
continue
remove_adjacent(board, x, y)
remove_all_adjacent(board)
move_blocks(board)
print_board(board)
这个代码实现了一个简单的消消乐游戏,玩家可以输入要移除的方块的行和列来消除相邻的同色方块。代码会循环执行直到玩家输入 "quit" 为止。
原文地址: https://www.cveoy.top/t/topic/bs2c 著作权归作者所有。请勿转载和采集!