Итак, я совсем недавно начал писать код и решил сделать игру «камень, ножницы, бумага»; Однако в моей программе есть ошибка, из-за которой, если пользователь вводит «рок», правильный блок кода не запускается. Вместо этого он запускает инструкцию else, которая должна выполняться только тогда, когда пользователь вводит «нет». Я пробовал использовать цикл while вместо операторов if else, но это не имело значения.

import random

q_1 = str(input("Hello, want to play Rock Paper Scissors?:"))

print()
# ^^adds an indent
rpc_list = ["rock", "paper", "scissors"]

comp = random.choice(rpc_list)
# ^^randomly selects r, p, or s

user = str(input("Great, select Rock Paper or Scissors:"))
if q_1 != "yes":
    if q_1 == comp:
        print("Oh No, a Tie!")
    elif q_1 == "rock":
        if comp == "paper":
            print("I Win!")
        else:
            print("You Win!")
    elif q_1 == "paper":
        if comp == "rock":
            print("You Win!")
        else:
            print("I Win!")
    else:
        if comp == "rock":
            print("I Win!")
        else:
            print("You Win!")
else:
    print("Ok :(")
0
stucklobster 6 Дек 2020 в 23:56

1 ответ

Лучший ответ

В вашем коде есть несколько проблем.

Прежде всего, ваш код запускает игру только в том случае, если пользователь не вводит «да». Вам нужно изменить if q_1 != "yes": на if q_1 == "yes":.

Во-вторых, ваш код просит пользователя выбрать камень, ножницы или бумагу, независимо от того, сказали они, что хотят играть или нет. Исправьте это, переместив user = str(input("Great, select Rock Paper or Scissors:")) в оператор if q_1 == "yes": if.

В-третьих, ваш код использует q1 вместо user, как должен.

Вот как должен выглядеть ваш код:

import random

q_1 = str(input("Hello, want to play Rock Paper Scissors?:"))

print()
# ^^adds an indent
rpc_list = ["rock", "paper", "scissors"]

comp = random.choice(rpc_list)
# ^^randomly selects r, p, or s

if q_1 == "yes":
    user = str(input("Great, select Rock Paper or Scissors:"))
    if user == comp:
        print("Oh No, a Tie!")
    elif user == "rock":
        if comp == "paper":
            print("I Win!")
        else:
            print("You Win!")
    elif user == "paper":
        if comp == "rock":
            print("You Win!")
        else:
            print("I Win!")
    else:
        if comp == "rock":
            print("I Win!")
        else:
            print("You Win!")
    print("I played:",comp)
else:
    print("Ok :(")
0
Alexander Kalian 6 Дек 2020 в 21:13