Форум сайта python.su
Привет мир, у меня есть проблема.
Вроде змей сейчас в моде, поэтому хочется на нем сделать текстовую игру.
Порывшись в документации на официальном сайте, посмотрев уроки и исходники различных программ я обнаружил, что везде предлагают петлю ‘while true’, когда мне нужно ‘go to’.
Понимаю, что ‘go to’ стало атавизмом, но для моей цели в конце программы предполагается вопрос: ‘Поиграем ещё?’
Вопрос: как сделать так, чтобы была возможность поиграть в игру несколько раз?
koloda = [6,7,8,9,10,2,3,4,11] * 4 import random random.shuffle(koloda) print('Поиграем?') count = 0 while True: choice = input('Будете брать карту? y/n\n') if choice == 'y': current = koloda.pop() print('Вам попалась карта достоинством %d' %current) count += current if count > 21: print('Извините, но вы проиграли') break elif count == 21: print('Поздравляю, вы набрали 21!') break else: print('У вас %d очков.' %count) elif choice == 'n': print('У вас %d очков и вы закончили игру.' %count) break print('До новых встреч!')
Отредактировано y4n23x (Июль 21, 2021 17:12:24)
Офлайн
y4n23xиспользовать
как сделать так, чтобы была возможность поиграть в игру несколько раз?
y4n23x
что везде предлагают петлю ‘while true’
Офлайн
получается так
#старое #koloda = [6,7,8,9,10,2,3,4,11] * 4 #import random #random.shuffle(koloda) #count = 0 choice1 = input('Поиграем? y/n\n') #добавил 1 выбор в начале петли #while True: if choice1 == 'y': # choice2 = input('Будете брать карту? y/n\n') # if choice2 == 'y': # current = koloda.pop() # print('Вам попалась карта достоинством %d' %current) # count += current # if count > 21: # print('Извините, но вы проиграли') # count = 0 choice1 = input('Поиграем ещё? y/n\n') #добавил 2 выбор вместо break'а # elif count == 21: # print('Поздравляю, вы набрали 21!') # count = 0 choice1 = input('Поиграем ещё? y/n\n') #добавил 2 выбор вместо break'а # else: # print('У вас %d очков.' %count) # elif choice2 == 'n': # print('У вас %d очков и вы закончили игру.' %count) # count = 0 choice1 = input('Поиграем ещё? y/n\n') #добавил 2 выбор вместо break'а # elif choice1 == 'n': # print('До новых встреч!') # break #забыл добавить else; при вводе кириллицы программа останавливается
Офлайн
y4n23x
Вот так тебе будет удобнее разбираться и нет дублирования строк
import random def game(koloda): """Основной цикл игры""" count = 0 print("Игра началась. У вас 0 очков") while True: choice = input('Будете брать карту? y/n\n') if choice == 'y': current = koloda.pop() print('Вам попалась карта достоинством %d' %current) count += current if count > 21: print('Извините, но вы проиграли') break elif count == 21: print('Поздравляю, вы набрали 21!') break else: print('У вас %d очков.' %count) elif choice == 'n': print('У вас %d очков и вы закончили игру.' %count) break new_game() def new_game(): """реализует ветку диалога и запуск игры заново""" new_game = input('Cыграем еще раз? (y/n) ') while True: if new_game == 'y': game(create_deck()) if new_game == 'n': print('До новых встреч!') break else: new_game = input('Ошибочный ввод. Нажмите "y", чтобы сыграть еще раз или "n", чтобы выйти из игры ') def create_deck(): """тасует колоду перед каждой игрой, иначе на 37 ходу твоя программа остановится, потому что в списке koloda не останется элементов""" koloda = [6, 7, 8, 9, 10, 2, 3, 4, 11] * 4 random.shuffle(koloda) return koloda def main(): """запускает первую игру""" print('Поиграем?') game(create_deck()) if __name__ == "__main__": main()
Офлайн
y4n23xОбщий шаблон такой: если тебе нужно несколько вложенных бесконечных циклов, то ты их прячешь в подпрограммы. Таким образом в структурной парадигме программирования избавляются от goto.
Порывшись в документации на официальном сайте, посмотрев уроки и исходники различных программ я обнаружил, что везде предлагают петлю ‘while true’, когда мне нужно ‘go to’.
>>> n1 = 0 >>> while True: ... print('Первый цикл') ... print('Действие 1 1') ... print('Действие 1 2') ... print('Действие 1 3') ... n2 = 0 ... while True: ... print('Второй цикл') ... print('Действие 2 1') ... print('Действие 2 2') ... print('Действие 2 3') ... n3 = 0 ... while True: ... print('Третий цикл') ... print('Действие 3 1') ... print('Действие 3 2') ... print('Действие 3 3') ... n3 += 1 ... if n3 > 3: ... break ... n2 += 1 ... if n2 > 3: ... break ... n1 += 1 ... if n1 > 3: ... break ... Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 >>>
>>> def f1(): ... n1 = 0 ... while True: ... print('Первый цикл') ... print('Действие 1 1') ... print('Действие 1 2') ... print('Действие 1 3') ... f2() ... n1 += 1 ... if n1 > 3: ... break ... >>> def f2(): ... n2 = 0 ... while True: ... print('Второй цикл') ... print('Действие 2 1') ... print('Действие 2 2') ... print('Действие 2 3') ... f3() ... n2 += 1 ... if n2 > 3: ... break ... >>> def f3(): ... n3 = 0 ... while True: ... print('Третий цикл') ... print('Действие 3 1') ... print('Действие 3 2') ... print('Действие 3 3') ... n3 += 1 ... if n3 > 3: ... break ... >>> f1() Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Первый цикл Действие 1 1 Действие 1 2 Действие 1 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Второй цикл Действие 2 1 Действие 2 2 Действие 2 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 Третий цикл Действие 3 1 Действие 3 2 Действие 3 3 >>>
Отредактировано py.user.next (Июль 22, 2021 01:49:54)
Офлайн