Как улучшить мой пошаговый код игрового цикла - PullRequest
0 голосов
/ 25 сентября 2018

Я отправился в путешествие, чтобы создать пошаговую файтинговую игру.Я просто хотел получить ваш отзыв о коде.У меня небольшая проблема, когда я пытаюсь понять, как я могу не повторять следующие строки кода ...

move_command = input("What move would you like to use? one, two, three, or four? ")


  if move_command == "one":
      for key in player.move_one:
          print("You used {}".format(key))
          print("")
      bot_damage = player.move_one[key][0]
      mana_used = player.move_one[key][1]


  if move_command == "two":
      for key in player.move_two:
          print("You used {}".format(key))
          print("")
      bot_damage = player.move_two[key][0]
      mana_used = player.move_two[key][1]

  if move_command == "three":
      for key in player.move_three:
          print("You used {}".format(key))
          print("")
      bot_damage = player.move_three[key][0]
      mana_used = player.move_three[key][1]



  if move_command == "four":
      for key in player.move_four:
          print("You used {}".format(key))
          print("")
      bot_damage = player.move_four[key][0]
      mana_used = player.move_four[key][1]

Я считаю, что могу создать функцию, которая поможет мнесократить эти 4 блока два два, но я не знаю, как это сделать.Я знаю, что я должен проявлять гибкость с моим атрибутом player.move_ "one" и моей командой move_com, любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете превратить параметры в словарь и назначить каждый параметр в качестве ключа, а результат - его значению.Оттуда вы можете просто передать ключ функции, которая будет использовать соответствующее значение.

move_command = input("What move would you like to use? one, two, three, or four? ")

move_dict = {"one": player.move_one, "two": player.move_two, "three": player.move_three, "four": player.move_four}

do_command(move_command)

Где do_command() определяется как:

def do_command(command_number):
    for key in move_dict[command_number]:
        print("You used {}".format(key))
        print("")
      bot_damage = player.move_one[key][0]
      mana_used = player.move_one[key][1]
...