这次我们来编写一个简单的“记忆翻牌”游戏。游戏开始时,会展示一系列翻转的牌,然后它们会随机翻转几次,玩家的任务是记住哪些牌最初是翻转的。
以下是“记忆翻牌”游戏的Python代码示a例:
python复制代码
|
import random |
|
|
|
# 初始化牌面状态,0表示正面朝下,1表示正面朝上 |
|
def init_cards(num_cards): |
|
return [0] * num_cards |
|
|
|
# 翻转指定位置的牌 |
|
def flip_card(cards, index): |
|
cards[index] = 1 if cards[index] == 0 else 0 |
|
|
|
# 显示牌面状态给玩家 |
|
def show_cards(cards): |
|
for i, card in enumerate(cards): |
|
print("牌 {}: {}".format(i+1, "正面朝上" if card == 1 else "正面朝下")) |
|
|
|
# 随机翻转一些牌 |
|
def shuffle_cards(cards, flips): |
|
indices = list(range(len(cards))) |
|
for _ in range(flips): |
|
random.shuffle(indices) |
|
flip_card(cards, indices.pop()) |
|
|
|
# 检查玩家答案 |
|
def check_answer(cards, player_answer): |
|
return all(cards[i] == player_answer[i] for i in range(len(cards))) |
|
|
|
# 游戏主逻辑 |
|
def memory_game(): |
|
num_cards = 5 # 假设有5张牌 |
|
flips = 3 # 随机翻转3次 |
|
cards = init_cards(num_cards) |
|
|
|
# 显示初始牌面给玩家,并等待他们记住 |
|
show_cards(cards) |
|
input("记住这些牌,然后按回车继续...") |
|
|
|
# 随机翻转牌面 |
|
shuffle_cards(cards, flips) |
|
print("牌面已经翻转,现在请回忆并输入初始时哪些牌是正面朝上的(输入0或1)。") |
|
|
|
# 获取玩家答案 |
|
player_answer = [] |
|
for _ in range(num_cards): |
|
while True: |
|
try: |
|
answer = int(input("牌 {} 是正面朝上吗?(0/1) ".format(_+1))) |
|
if answer in [0, 1]: |
|
player_answer.append(answer) |
|
break |
|
else: |
|
print("无效输入,请输入0或1。") |
|
except ValueError: |
|
print("无效输入,请输入0或1。") |
|
|
|
# 检查答案并输出结果 |
|
if check_answer(cards, player_answer): |
|
print("恭喜你,答对了!") |
|
else: |
|
print("很遗憾,答错了。请再试一次。") |
|
|
|
# 开始游戏 |
|
memory_game() |
|
|
|
# 询问是否再玩一次 |
|
play_again = input("你想再玩一次吗?(y/n):") |
|
if play_again.lower() == 'y': |
|
print("好的,我们再来一局!") |
|
memory_game() |
|
else: |
|
print("好的,谢谢参与!游戏结束。") |
在这个游戏中,我们首先定义了一些辅助函数来初始化牌面、翻转牌、显示牌面状态以及检查玩家答案。游戏开始时,会展示一系列正面朝下的牌,然后给玩家一点时间记住它们。接着,牌面会随机翻转几次,玩家需要记住哪些牌最初是正面朝上的,并输入他们的答案。最后,游戏会检查玩家的答案是否正确,并输出相应的结果。
你可以运行这段代码来体验这个简单的记忆翻牌游戏。你可以根据需要调整牌的数量和翻转的次数来增加游戏的难度。