Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class Ticket:
- content = []
- def _generate_line(self):
- rows = []
- line = []
- for i in range(5):
- while True:
- row = random.randint(1, 9)
- if row not in rows:
- break
- rows.append(row)
- if row == 1:
- start = 1
- end = 9
- else:
- start = row * 10 - 10
- end = row * 10 - 1
- line.append(random.randint(start, end))
- return (sorted(line))
- def _generate_ticket(self):
- self.content = []
- for _ in range(3):
- self.content.append(self._generate_line())
- def __init__(self):
- self._generate_ticket()
- def print(self, casks=[]):
- print('---------------------------')
- for line in self.content:
- j = 0
- for i in range(1, 10):
- if i == 1:
- start = 1
- end = 9
- else:
- start = i * 10 - 10
- end = i * 10 - 1
- if line[j] >= start and line[j] <= end:
- if line[j] in casks:
- print('{:2}'.format('-'), end='')
- else:
- print('{:2}'.format(line[j]), end='')
- if j < len(line) - 1:
- j += 1
- else:
- print(' ', end='')
- print(' ', end='')
- print('\n')
- print('---------------------------')
- def check_number(self, number):
- for line in self.content:
- if number in line:
- return True
- return False
- def count_numbers(self, casks):
- count = 0
- for line in self.content:
- for number in line:
- if number in casks:
- count += 1
- return count
- player_ticket = Ticket()
- computer_ticket = Ticket()
- casks = []
- for _ in range(90):
- while True:
- cask = random.randint(1, 90)
- if cask not in casks:
- break
- print('Новый бочонок: {} (осталось: {})'.format(cask, 90 - len(casks)))
- print('Билет игрока')
- player_ticket.print(casks)
- print('\nБилет компьютера')
- computer_ticket.print(casks)
- while True:
- answer = input('Зачеркнуть цифру? (y/n)')
- if answer in ['y', 'n']:
- break
- print()
- if answer == 'y':
- if not player_ticket.check_number(cask):
- print('Вы проиграли, такого номера в билете нет')
- break
- else:
- if player_ticket.check_number(cask):
- print('Вы проиграли, номера есть в билете')
- break
- casks.append(cask)
- if player_ticket.count_numbers(casks) == 15:
- print('Вы победили')
- break
- if computer_ticket.count_numbers(casks) == 15:
- print('Вы проиграли, победил компьютер')
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement