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()