python 记忆翻牌
时间: 2023-11-28 19:45:23 浏览: 41
以下是Python实现记忆翻牌游戏的代码示例:
```python
import random
# 初始化游戏面板
def init_board(n):
board = []
for i in range(n):
row = ['-'] * n
board.append(row)
return board
# 打印游戏面板
def print_board(board):
for row in board:
print(' '.join(row))
# 随机生成翻牌位置
def random_place(board, num_icons):
icons = list(range(num_icons)) * 2
random.shuffle(icons)
for i in range(num_icons * 2):
row = i // len(board)
col = i % len(board)
board[row][col] = icons[i]
# 翻牌
def flip(board, cards, row, col):
if board[row][col] != '-':
return False
cards.append((row, col))
board[row][col] = str(cards.index((row, col)) % (len(cards) // 2) + 1)
return True
# 判断是否匹配成功
def match(cards, board):
icon1 = board[cards[0][0]][cards[0][1]]
icon2 = board[cards[1][0]][cards[1][1]]
return icon1 == icon2
# 游戏主函数
def play_game(n, num_icons):
board = init_board(n)
random_place(board, num_icons)
cards = []
while True:
print_board(board)
row1 = int(input('Enter row for card 1: '))
col1 = int(input('Enter column for card 1: '))
if flip(board, cards, row1, col1):
print_board(board)
row2 = int(input('Enter row for card 2: '))
col2 = int(input('Enter column for card 2: '))
if flip(board, cards, row2, col2):
if match(cards, board):
print('Match!')
if len(cards) == n * n:
print('You win!')
return
else:
print('Not a match!')
board[row1][col1] = '-'
board[row2][col2] = '-'
cards = []
# 运行游戏
play_game(4, 4)
```
这个游戏的规则是:在一个n x n的游戏面板上,有num_icons个不同的图标,每个图标出现两次。玩家需要翻开两张牌,如果两张牌的图标相同,则匹配成功,否则翻回去。当所有牌都匹配成功时,游戏结束。