找回密码
 中文实名注册
查看: 63|回复: 0

武功大赛 温暖 传真

[复制链接]

9

主题

29

帖子

1597

积分

金牌会员

Rank: 6Rank: 6

积分
1597
发表于 2025-2-15 12:10:09 | 显示全部楼层 |阅读模式
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()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2025-3-14 23:27 , Processed in 0.039512 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表