|
import time
# 显示封面
def show_cover():
print("=" * 50)
print(" 双人武功比赛 ")
print("=" * 50)
print("欢迎来到这场激烈的武功对决!")
print("两位选手将进行回合制的战斗,还可以使用飞镖攻击。")
print("让我们一起见证谁能笑到最后!")
print("=" * 50)
time.sleep(3)
# 初始化选手信息
def initialize_players():
player1 = {
"name": "选手1",
"hp": 100,
"dart": 3 # 飞镖数量
}
player2 = {
"name": "选手2",
"hp": 100,
"dart": 3
}
return player1, player2
# 显示选手信息
def show_player_info(player1, player2):
print(f"{player1['name']} 生命值: {player1['hp']}, 飞镖数量: {player1['dart']}")
print(f"{player2['name']} 生命值: {player2['hp']}, 飞镖数量: {player2['dart']}")
# 普通攻击
def normal_attack(attacker, defender):
damage = 10
defender["hp"] = max(0, defender["hp"] - damage)
print(f"{attacker['name']} 发动普通攻击,对 {defender['name']} 造成 {damage} 点伤害!")
# 飞镖攻击
def dart_attack(attacker, defender):
if attacker["dart"] > 0:
damage = 20
defender["hp"] = max(0, defender["hp"] - damage)
attacker["dart"] -= 1
print(f"{attacker['name']} 扔出飞镖,对 {defender['name']} 造成 {damage} 点伤害!")
else:
print(f"{attacker['name']} 没有飞镖了,只能进行普通攻击。")
normal_attack(attacker, defender)
# 玩家选择攻击方式
def choose_attack(attacker, defender):
while True:
choice = input(f"{attacker['name']},请选择攻击方式(1: 普通攻击,2: 飞镖攻击): ")
if choice == "1":
normal_attack(attacker, defender)
break
elif choice == "2":
dart_attack(attacker, defender)
break
else:
print("无效的选择,请重新输入。")
# 主游戏循环
def main():
show_cover()
player1, player2 = initialize_players()
round_num = 1
while player1["hp"] > 0 and player2["hp"] > 0:
print(f"\n第 {round_num} 回合开始!")
show_player_info(player1, player2)
# 选手 1 攻击
choose_attack(player1, player2)
if player2["hp"] <= 0:
break
# 选手 2 攻击
choose_attack(player2, player1)
round_num += 1
# 显示比赛结果
if player1["hp"] > 0:
print(f"\n比赛结束!{player1['name']} 获胜!")
else:
print(f"\n比赛结束!{player2['name']} 获胜!")
if __name__ == "__main__":
main() |
|