[Вопрос] Программисты, подскажите где ошибка

Тема в разделе "Python", создана пользователем barzini, 19 май 2019.

  1. barzini

    barzini New Member

    Подскажите, где ошибка. При результате в игре Камень, ножницы, бумага, показывает другой результат. Пример: у меня и противника - камень, но показывает, что я проиграл.
     
  2. corpday

    corpday New Member

    Допустим у противника в рандоме выпало 1.
    1 - присваиваешь opp значение Rock
    2 - opp уже равняется не random(1,3) (числу 1), а строке, соответственно, попадает под else.
     
  3. metro

    metro New Member

    Это плюсы? Я только джавой владею, но логика-та одинаковая:
    1) Переменной opp присваиваешь строку, а затем сравниваешь её с целочисленным значением (1, 2 и 3). Т.е. всегда вариант else - проигрываешь.
    2) Зачем тебе тут if, если while и так будет повторяться до тех пор, пока пользователь не введет 1, 2 или 3? Масло масленное какое-то получается.
    Если и тут есть, то строчка точно лишняя ну или тупо присваиваешь иксу ноль - как минимум более оптимизированный код будет без лишнего обращения к вводу.
    3) Лучше было сделать двумерный массив (в джаве мапку) в верхних ячейках номера выбора, в нижних их имена (камень, ножницы, бумага). Дальше сравниваешь по расположению и в случае равности с длиной массива с первым элементом. (1)Бумага (ебашит) - (2)Камень (ебашит) - (3)Ножницы (ебашат) - тут возврат к первому элементу. Т.е. если ты выбрал 2, а рандом 1, то тебе нужно два условия: на совпадение элементов или если на следующий. Т.е. максимум пучок из 3-х if-ов... Не, чет много элсоифов.
     
  4. Wamp

    Wamp New Member

    Как выше уже описал cordday все дело в неправильном сравнивании переменной opp. Я конечно сам больше по плюсам и не привык к закону: одна переменная-один тип. С таким кодом он всегда будет выводить You Lose т.к. ты не указал, что сравнивать надо с int(opp), наверное это так работает(если str(opp) работает). В этой ситуации лучше иметь другую переменную т.к. это облегчит читаемость кода, но как знаешь. Вообще это же легко фиксится точками остановы.
     
  5. barzini

    barzini New Member

    Смотрел это видео , после него повторял код, но у него так же, как и меня написано, но у него работает нормально , у меня нет. Может где-то я опять не доглядел
     
  6. barzini

    barzini New Member

     
  7. corpday

    corpday New Member

    Он использует две переменных, app и gg, а ты только одну)
     
  8. corpday

    corpday New Member

    Я вообще на питоне редко пишу, но попробуй так, должно работать
     
  9. barzini

    barzini New Member

    А да, в этом и косяк. Не обратил внимания даже

    Да, всё правильно работает. Ошибся с переменными
     

Поделиться этой страницей