如何调用函数中的某个参数?

2024-10-06 12:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我刚开始学习python,我想为什么不做一个基于文本的游戏来提高我的技能。所以在这个游戏中,我想制作一个战斗场景,其中你有一个职业(骑士、盗贼或巫师),这个职业存储在player\ class中。每个类有三个属性。每个职业都有速度、伤害和生命值。我想这样做,如果你的速度高于或等于敌人你攻击第一,但如果敌人的速度高于敌人的攻击第一。所以我想我可以这样做,只要调用player\u class=userKnight,然后在战斗中如果player\u class(speed)>;=敌方类型(espeed),那么敌方类型(health)-player\u class(damage)。这是行不通的,如果有人有更好的方法或者可以解释我如何更好地实现这一点,那就太棒了!你知道吗

def userRogue(damage,speed,health):
    health = 100;
    damage = 50;
    speed = 150;
    return

def userKnight(damage,speed,health):
    health = 100;
    damage = 100;
    speed = 50;
    return

def userWizard(damage,speed,health):
    health = 100;
    damage = 75;
    speed = 75;
    return

def enemyRat(ehealth, espeed, edamage):
    ehealth = 100;
    edamage = 10;
    espeed = 70;
    return

def enemyDeath():
    if ehealth <= 0:
        print("Enemy is dead!")
    return

def playerDeath():
    if health <= 0:
        print("You have died!")
    return

user_name = input("What is your name: ")

print("1:)Rogue")
print("2:)Knight")
print("3:)Wizard")

player_class_select = int(input("Choose your class: "))

player_class = 0
enemy_type = 0

if player_class_select == 1:
    print("You chose Rogue!")
    player_class = userRogue

elif player_class_select == 2:
    print("You chose Knight!")
    player_class = userKnight

elif player_class_select == 3:
    print("You chose Wizard!")
    player_class = userWizard

else:
    print("That is not a choice!")


print("Time for your first battle...")
print("A enemy has appeared!")

enemy_type = enemyRat

if player_class(speed) >= enemy_type(espeed):
    enemy_type(ehealth) - player_class(damage)
    enemyDeath()
elif player_class(speed) < enemy_type(espeed):
    player_class(health) - enemy_type(edamage);
    playerDeath()
    ```

Tags: youreturnifdeftypeselectclassplayer
1条回答
网友
1楼 · 发布于 2024-10-06 12:34:56

您应该为角色创建一个父类,如下所示:

class Player:
  def __init__(self, name, damage, speed, health):
    self.name = name 
    self.damage = damage
    self.speed = speed
    self.health = health

  def __str__(self):
    return 'Name: {} | Damage: {} | Speed: {} | Health: {}'.format(self.name, self.damage, self.speed, self.health)

rogue = Player('Rogue', 100, 50, 150) # Setting attributes to the parent class
knight = Player('Knight', 100, 100, 50) # name, damage, speed, health
wizard = Player('Wizard', 100, 75, 75)
rat = Player('Rat', 100, 10, 70)

print(rogue)
print(knight)
print(wizard)
print(rat)

这将创建您的玩家和属性:

Name: Rogue | Damage: 100 | Speed: 50 | Health: 150
Name: Knight | Damage: 100 | Speed: 100 | Health: 50
Name: Wizard | Damage: 100 | Speed: 75 | Health: 75
Name: Rat | Damage: 100 | Speed: 10 | Health: 70

使用此信息比较容易与其他玩家/敌人的其他值进行比较:

if rogue.speed > rat.speed:
do something

相关问题 更多 >