1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import random
- COLORS = {
- 'R': 'red',
- 'G': 'green',
- 'B': 'blue',
- 'Y': 'yellow',
- 'O': 'orange',
- 'P': 'purple',
- }
- SLOTS = 4
- class Mastermind():
- riddle: list
- guesses: list
- def __init__(self):
- self.reset()
- def guess(self, combination: list):
- self.guesses.append(combination)
- black = len([1 for c, r in zip(combination, self.riddle) if c == r])
- white = -black
- for c in COLORS.keys():
- white += max(combination.count(c) - self.riddle.count(c), 0)
- return (black, white)
- def reset(self):
- self.riddle = random.choices(list(COLORS.keys()), k=SLOTS)
- self.guesses = []
- if __name__ == '__main__':
- mm = Mastermind()
- print("Colors:")
- for k, c in COLORS.items():
- print(" " + k + ": " + c)
- print("")
- while True:
- guess = input("What's your guess? ")
- res = mm.guess(list(guess))
- print(res)
- if res[0] == 4:
- print("That's right! Congratulations!")
- mm.reset()
|