import random class GameNumber(): # create game's numbers # create number set for game def createNumberSet(self, amount, gamesize): s = {} s = set() while len(s) < gamesize: # add set as gamesize s.add(random.randint(0, amount-1)) print(s) return s # create game number list def createGameNumber(self, gameSet): numbers = [] for k in gameSet: numbers.append(k) print(k) return numbers class CheckNumber(): # check number whether it is right # compare number between a guess answer and a right answer def compareNumber(self, gameNumber, guessNumber): result = [] strike = 0 ball = 0 for i in range(len(gameNumber)): print(guessNumber) if guessNumber[i] == gameNumber[i]: # check number of strke strike += 1 elif guessNumber[i] in gameNumber: # check number of ball ball += 1 # add results of strike and ball result.append(strike) result.append(ball) return result class InputNumber(): # user inputs numbers def getGameSize(self): amountNumber = [] while True: # check wrong input temp = input('put a game size : ') try: if len(temp) > 1: raise for i in temp: if i not in '0123456789': raise except: print('it is not number or too big, input again') else: amountNumber.append(int(temp)) break while True: # check wrong input temp = input('put a max of number : ') try: if len(temp) > 1: raise for i in temp: if i not in '0123456789': raise except: print('it is not number or too big, input again') else: amountNumber.append(int(temp)) return amountNumber def getNumber(self, gameSize): userGuess = [] for i in range(gameSize): while True: # check wrong input print('put ', i+1, ' of numbers : ', end='') temp2 = input() try: if len(temp2) > 1: raise for k in temp2: if k not in '0123456789': raise except: print('it is not number or too big, input again') else: userGuess.append(int(temp2)) break return userGuess class PrintResult(): # print result def printResult(self, result): print(result[0], ' strike, ', result[1], ' ball')