@1w1w1w1w1w1w1w1w1w1ww

Запутался в блоках if и циклах. Как исправить?

На Python 3.7 пишу свою игру. Почему-то даже после того, как я внес часть кода в цикл, после успешно выбранной клетки на экран не выводится окно для ввода очередной клетки, чтоб продолжить игру.
bomb_meaning = randint(1,9)
    while player_meaning == None:
        input_screen = turtle.Screen()
        player_meaning = input_screen.numinput('ВВЕДИТЕ НОМЕР КЛЕТОЧКИ', 'Порядковый счет идет слева вправо и сверху вниз.', default = None, minval = 1, maxval = 9)
    if bomb_meaning == player_meaning:
        text.clear()
        text_defeat = turtle.Turtle()
        text_defeat.hideturtle()
        text_defeat.speed(999999)
        text_defeat.up()
        text_defeat.forward(95)
        text_defeat.right(95)
        text_defeat.forward(90)
        text_defeat.write('''Ты был подорван на мине!
        К сожалению, ты проиграл...''', True , align ='left')
        textpos = text_defeat.position()
        'locals()[numb + str(bomb_meaning)]'
        numb = 'numb'
        bomb_position = locals()[numb + str(bomb_meaning)].position()
        locals()[numb + str(bomb_meaning)].clear()
        bomb = turtle.Turtle()
        bomb.up()
        bomb.hideturtle()
        bomb.goto(bomb_position)
        bomb.write('БА-БАХ!', True , align ='center')
    if bomb_meaning != player_meaning:
        text.clear()
        score = score+1
        score_text = turtle.Turtle()
        score_text.up()
        score_text.hideturtle()
        score_text.speed(999999)
        score_text.goto(165,-85)
        score_text.write('+1, ваш прогресс = %s' %score, True , align ='center')


(не обращайте внимание, что игра написана на turtle и на некоторые бесполезные строки, я только учусь)
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
У тебя только один цикл - повторять попытки ввода номера клетки, пока пользователь что-то не введёт. Больше он ничего не делает.
Тебе нужен ещё один, который охватывает всю логику хода. Можешь сделать его вечным, и выходить из цикла по break, когда пользователь выиграет/проиграет.

И да...
locals()[numb + str(bomb_meaning)]
Освой списки. Вот прямо сейчас отложи игру и освой списки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы