Форум сайта python.su
Добрый день.
Несколько дней назад начал изучать python по книге М. Лутза “Изучаем Python 4ed”. До этого опыта в программировании не было совсем.
Решил я сделать симулятор простого однорукого бандита. Прошу помощи в доработке и указании на ошибки. Заранее спасибо.
1) Как запускать игру заново с самого начала?
2) Как запретить нажатие на кнопку “z” после проигрыша?
import random c = 50 #Начальный "банк" игрока while True: choice = input('Крутануть барабан! (Для активации нажмите клавишу ''z'')\n') #приглашение сыграть if choice == 'z': if c>=10: c=c-10 #стоимость одной игры - 10 очков r1 = random.randint(1, 10) r2 = random.randint(1, 10) r3 = random.randint(1, 10) print ((r1), (r2), (r3)) #Выводится 3 числа, которые должны совпасть if (r1)==(r2)==(r3): #Если все числа одинаковые c+=999 elif (r1)==(r2): #Розыгрыш двух чисел c+=(r1+r2) print ('В этом раунде вы выиграли %d очков' %int((r1)+(r2))) elif (r2)==(r3): c+=(r2+r3) print ('В этом раунде вы выиграли %d очков' %int((r2)+(r3))) elif (r3)==(r1): c+=(r3+r1) print ('В этом раунде вы выиграли %d очков' %int((r1)+(r3))) print ('Общий выигрыш %d очков\n' %c) if c<= 9: #если меньше 10 очков, то игра заканчивается print ('Game Over') choice = input('Restart (y)\n') if choice == 'z': print ('Вы проиграли. Нажмите клавишу (y)') if choice == 'y': continue #Как запустить игру заново? if choice == 'x': #показывает текущее количество очков print(c)
Офлайн
А зачем столько скобок? Вот тут, например, ну нахрена они нужны?
(r1)==(r2)
# -*- coding: utf-8 -*- import random LINE = 3 MAX = 10 r = set([random.randint(1, MAX) for _ in xrange(LINE)]) c = LINE - len(r) # это количество совпадений print (c)
Офлайн
#Как запустить игру заново?
Сделай два цикла, один в другом
while 1: print "new game" while 1: if game_over: print "game over" break
Офлайн