Вопрос В чём проблема кода (python)

Регистрация
1 Окт 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
в чём проблема кода? мне 13 лет уже третий день пытаюсь найти проблему подскажите пожалуйста. (типо игра камень ножницы бумага) import random

print("это игра 'камень ножницы бумага' ")

print("как вас называть?")

name = input()

print("привет," + name)

print('правила таковы')

print(":камень бьёт ножницы, ножницы режут бумагу, бумага кроет камень")

print('начать игру?')

print("1 - да")

print("2 - нет")

while True:

if input() == "1":

print("начинаем")

print("выберете камень, ножницы или бумагу")

print("1 - камень")

print("2 - ножницы")

print("3 - бумага")

if input() == "1":

print("вы выбрали камень")

if input() == "1":

print("вы выбрали ножницы")

if input() == "1":

print("вы выбрали бумагу")

str = random.randint(4,6)

if str == 4:

print("компьютер выбрал камень")

if str == 5:

print("компьютер выбрал ножницы")

if str == 6:

print("компьютер выбрал бумагу")

if str == 4 and input() == "1":

print("ничья")

if str == 4 and input() == "2":

print("компьютер победил")

if str == 4 and input() == "3":

print(name + "победили")

if str == 5 and input() == "1":

print(name + " победил")

if str == 5 and input() == "2":

print(" ничья")

if str == 5 and input() == "3":

print("компьютер победил")

if str == 6 and input() == "1":

print("компьютер победил")

if str == 6 and input() == "2":

print(name + " победил")

if str == 6 and input() == "3":

print("ничья")
 
Слишком переусложнено. Всё намного проще: print('Выберите камень - 1, ножницы - 2 или бумагу - 3')
t = {1: 'камень', 2: 'ножницы', 3: 'бумагу'}
h = int(input())
print('Вы выбрали', t[h])
c = int(random.randint(1, 3))
print('Компьютер выбрал', t[c])
print(['Ничья', 'Вы победили', 'Компьютер победил'][(3 + c - h) % 3])
 
if input() == "1":
print("вы выбрали камень")
if input() == "1":
print("вы выбрали ножницы")
if input() == "1":
print("вы выбрали бумагу")

Это оригинально!
 
Input с выбором камень ножницы или бумагу надо бросить в переменную , и только потом сравнивать , а так ты сравниваешь новый ввод в условии. (response = input("> ") вот так например)
 
Привет! У тебя есть несколько проблем в коде. Вот что я заметил:

У тебя отсутствует отступ для блока if в цикле while True. В Python отступы играют важную роль в определении блоков кода, поэтому нужно добавить отступ перед условием if.

У тебя необходимо сохранить введенное значение пользователя в переменную, чтобы использовать его для сравнения. Вместо использования if input() == "1", ты можешь сначала сохранить введенное значение в переменную, а затем сравнивать ее с "1".

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

Вот исправленный код с учетом этих замечаний:

import random

print("Это игра 'камень ножницы бумага'")
print("Как вас называть?")
name = input()
print("Привет, " + name)
print("Правила таковы:")
print("Камень бьёт ножницы, ножницы режут бумагу, бумага кроет камень")
print("Начать игру?")
print("1 - да")
print("2 - нет")

while True:
if input() == "1":
print("Начинаем")
print("Выберите камень, ножницы или бумагу")
print("1 - камень")
print("2 - ножницы")
print("3 - бумага")

user_choice = input()

if user_choice == "1":
print("Вы выбрали камень")
elif user_choice == "2":
print("Вы выбрали ножницы")
elif user_choice == "3":
print("Вы выбрали бумагу")

computer_choice = random.randint(1, 3)

if computer_choice == 1:
print("Компьютер выбрал камень")
elif computer_choice == 2:
print("Компьютер выбрал ножницы")
elif computer_choice == 3:
print("Компьютер выбрал бумагу")

if user_choice == "1" and computer_choice == 1:
print("Ничья")
elif user_choice == "1" and computer_choice == 2:
print("Вы победили")
elif user_choice == "1" and computer_choice == 3:
print("Компьютер победил")
elif user_choice == "2" and computer_choice == 1:
print("Компьютер победил")
elif user_choice == "2" and computer_choice == 2:
print("Ничья")
elif user_choice == "2" and computer_choice == 3:
print("Вы победили")
elif user_choice == "3" and computer_choice == 1:
print("Вы победили")
elif user_choice == "3" and computer_choice == 2:
print("Компьютер победил")
elif user_choice == "3" and computer_choice == 3:
print("Ничья")
 
Назад
Сверху