Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # И так сравниваем мы значения слева со значениями сверху. Например,
- # камень и камень - ничья (-1), камень и ножницы - побеждает камень (1),
- # камень и бумага - проигрыш: бумага накрывает камень (0).
- #
- # +---------+-----------------------------+
- # | | Камень | Ножницы | Бумага |
- # |---------+---------+---------+---------|
- # | Камень | -1 | 1 | 0 |
- # |---------+---------+---------+---------|
- # | Ножницы | 0 | -1 | 1 |
- # |---------+---------+---------+---------|
- # | Бумага | 1 | 0 | -1 |
- # +---------+---------+---------+---------+
- import random
- ROCK = 'rock'
- SCISSORS = 'scissors'
- PAPER = 'paper'
- # Для игрока существует всего три выигрышных комбинации
- WINNING_MAP = {
- # Камень ломает ножницы
- ROCK: SCISSORS,
- # Ножницы режут бумагу
- SCISSORS: PAPER,
- # Бумага накрывает камень
- PAPER: ROCK
- }
- CHOICES = list(WINNING_MAP.keys())
- TIE = -1
- LOSE = 0
- WIN = 1
- MESSAGES = {
- TIE: 'tie',
- LOSE: 'you lose',
- WIN: 'you win'
- }
- def compare(choice_1, choice_2):
- if choice_1 == choice_2:
- return TIE
- for choice_win, choice_lose in WINNING_MAP.items():
- if choice_1 == choice_win and choice_2 == choice_lose:
- return WIN
- return LOSE
- def main():
- while 1:
- for i, v in enumerate(CHOICES):
- print("{}: {}".format(i, v))
- x = input("Enter item index or 'q' to exit: ")
- x = x.strip()
- if x.lower() == 'q':
- return
- try:
- x = int(x)
- except:
- print("It's not a number")
- continue
- if x < 0 or x >= len(CHOICES):
- print("Out of range")
- continue
- your_choice = CHOICES[x]
- comp_choice = random.choice(CHOICES)
- print("your {} vs comp {}: {}".format(
- your_choice,
- comp_choice,
- MESSAGES[compare(your_choice, comp_choice)]
- )
- )
- return 0
- if __name__ == '__main__':
- import sys
- sys.exit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement