Почему, когда я использую две функции в программе, работает только одна - PullRequest
0 голосов
/ 19 мая 2019

Я делаю простую пробку кода для школы, и мой вопрос заключается в том, почему, когда я использую две функции в программе, работает только одна или она не работает вообще. one_player_ # это имя моей функции. Я хочу использовать оператор if- для вызова функций, чтобы пользователь мог выбрать режим игры. Мои режимы игры - один игрок и два игрока. Поэтому я сделал код для игры функцией, чтобы позволить пользователю выбирать игровой режим через условие if, но когда вы выбираете игровой режим, он не работает. Что я пытаюсь сделать не возможно? Надеюсь, что это имеет смысл, пожалуйста, объясните, что я не так, спасибо.

# choose your game mode
op = input("Choose gamemode - Two player = 2  One player = 1 : ")
if op == 2 :
    print (two_player_op())
if op == 1:
    print(one_player_op())

#One player Function
def one_player_op():
       # I put game code for 1st play here


#Two player function
def two_player_op():
          # I put game code for two player here
#code ends

Я ожидаю, что он позволит пользователю выбрать игровой режим и запустить его, а не давать мне пустой ответ

Ответы [ 4 ]

1 голос
/ 19 мая 2019

Ваш скрипт читает сверху вниз.Сначала определите функции, а затем вызовите их.Также используйте «int» перед вводом.

#One player Function
def one_player_op():
       # I put game code for 1st play here


#Two player function
def two_player_op():
          # I put game code for two player here
#code endsenter code here
    # choose your game mode

op = int(input("Choose gamemode - Two player = 2  One player = 1 : "))

if op == 2:
    print (two_player_op())
if op == 1:
    print(one_player_op())
1 голос
/ 19 мая 2019

Вы должны убедиться, что сравниваете int с другим int, если хотите получить истинный результат. Имейте в виду типы данных, которыми вы манипулируете. Также в python вы должны определить функции перед кодом, который их запускает. Не код, который их определяет, а код, который фактически выполняет функцию. Итак, в вашем случае:

#One player Function
def one_player_op():
       # I put game code for 1st play here

#Two player function
def two_player_op():
          # I put game code for two player here

# choose your game mode
op = int(input("Choose gamemode - Two player = 2  One player = 1 : "))
if op == 2 :
    print (two_player_op())
if op == 1:
    print(one_player_op())
#code ends

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

if op == 2 :
    print (two_player_op())
elif op == 1:
    print(one_player_op())
#code ends
0 голосов
/ 19 мая 2019

Вам нужно обрабатывать другие опции, добавленные пользователем, а не только (1 или 2)


# choose your game mode
op = input("Choose gamemode - Two player = 2  One player = 1 : ")
try:
    user_input = int(op)
except ValueError:
    # handles characters added in input e.g "one", "play"
    print("Please enter values between 1 or 2 only ")

if user_input == 2 :
    print (two_player_op())
elif user_input== 1:
    print(one_player_op())
else:
    print("Please enter values between 1 or 2 only ")

#One player Function
def one_player_op():
       # I put game code for 1st play here

#Two player function
def two_player_op():
          # I put game code for two player here
#code ends

0 голосов
/ 19 мая 2019

Необходимо преобразовать input строку в int.

op = int (input ("........ '))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...