import random
life = 4
count = 0
yes = 'Верно'
no = 'Ответ неверный'
print('Суть этой игры такова: вы указываете любое целое число x, программа выбирает случайную'
' величину и выводит на экран результат одно из четырёх действий. Ваша задача - указать'
' арифметический знак действия (сложение (+), вычитание (-), умножение (*), деление (/)),'
' полагаясь на результат. 10 Правильных ответов приведут вас к победе.')
while life > 0 and count == 0:
game = input('Играем? да/нет: ')
if game == 'да':
while life > - 1 and count < 10:
try:
x = int(input('Введите х: '))
except ValueError:
print('Введите целое число')
except TypeError:
print('Введите целое число')
else:
i = random.randint(1, 5)
y = random.choice([x + i, x - i, x * i, x / i])
print('Случайная величина = ', i)
print('Результат действия = ', y)
if y:
action = input('Что это было за действие?: ')
if action == '+' and y == x + i:
print(yes)
count += 1
elif action == '-' and y == x - i:
print(yes)
count += 1
elif action == '*' and y == x * i:
print(yes)
count += 1
elif action == '/' and y == x / i:
print(yes)
count += 1
else:
print(no)
life -= 1
print('Прав на ошибку - ', life)
if count == 10:
print('Вы - победитель')
break
elif life == -1:
print('К сожалению, вы проиграли.')
while True:
new_try = input('Желаете попробовать ещё раз? да/нет: ')
if new_try == 'да':
life = 4
count = 0
continue
elif new_try == 'нет':
print('Тогда может в следующий раз.')
break
else:
print('Нужно написать "да" или "нет"')
elif game == 'нет':
print('Как пожелаете.')
break
else:
print('Нужно написать "да" или "нет"')
print('Всего хорошего.')
while life > 0 and count == 0:
if not []:
print('[] вернул False')
if [1, 2, 3]:
print('[1, 2, 3] вернул True')
......
else:
i = random.randint(1, 5)
ch, y = random.choice((('+', x + i), ('-', x - i), ('*', x * i), ('/', x / i)))
print('Случайная величина = ', i)
print('Результат действия = ', y)
if input('Что это было за действие?: ') == ch:
print(yes)
count += 1
else:
print(no)
life -= 1
print('Прав на ошибку - ', life)
if count == 10:
......
# coding: utf-8
import random
def ask(message, known_answers=['нет', 'да'], yes_no=True):
answer = '\n'
while answer not in known_answers:
answer = input(message)
if answer not in known_answers:
print('Возможные варианты: ', ' '.join(known_answers))
return known_answers.index(answer) if yes_no else answer
def game():
# supporting function
def _input_x():
x = None
while x is None:
try:
x = int(input('Введите x: '))
except ValueError:
print('Введите целое число')
return x
# messages
answers = ['Ответ неверный', 'Верно']
is_winner = ['К сожалению, вы проиграли', 'Вы - победитель']
# actions
actions = {'+': lambda x, i: x+i,
'-': lambda x, i: x-i,
'*': lambda x, i: x*i,
'/': lambda x, i: x/i
}
# initial values
life = 4
count = 10
# main loop
while life and count:
# condition
x = _input_x()
i = random.randint(1, 5)
print('Случайная величина = ', i)
random_action = random.choice(list(actions.keys()))
y = actions[random_action](x, i)
print('Результат действия = ', y)
# answer
answer = ask('Что это было за действие?: ',
known_answers=list(actions.keys()), yes_no=False)
# result
result = actions[answer](x, i) == y
print(answers[result])
if result:
count -= result
else:
life -= not result
print('Прав на ошибку - ', life)
# game result
print(is_winner[bool(life)])
def run():
print('Суть этой игры такова: вы указываете любое целое число x, программа выбирает случайную'
' величину и выводит на экран результат одно из четырёх действий. Ваша задача - указать'
' арифметический знак действия (сложение (+), вычитание (-), умножение (*), деление (/)),'
' полагаясь на результат. 10 Правильных ответов приведут вас к победе.')
while ask('Играем? да/нет: '):
game()
print('Всего хорошего')
if __name__ == '__main__':
run()