diff --git a/kjg/python-the-hard-way/baseballgame.py b/kjg/python-the-hard-way/baseballgame.py index a6a55a8..a6f2f0e 100644 --- a/kjg/python-the-hard-way/baseballgame.py +++ b/kjg/python-the-hard-way/baseballgame.py @@ -2,60 +2,44 @@ import baseballgameclass +# initial fucntion size = [] - -a_test2 = baseballgameclass.InputNumber() - -#size = a_test2.getGameSize() - -#print(size) - -a_test = baseballgameclass.GameNumber() -#a_test.createNumberSet(size[1], size[0]) -#number = a_test.createGameNumber() -#print(number) - +cGameNumber = baseballgameclass.GameNumber() guess = [] +checknewgame = 0 +inputset = {} +inputset = set() -a_test2 = baseballgameclass.InputNumber() -#guess = a_test2.getNumber(size[0]) +# assign class +cInputNumber = baseballgameclass.InputNumber() +cCheckNumber = baseballgameclass.CheckNumber() +cPrintResult = baseballgameclass.PrintResult() -a_test3 = baseballgameclass.CheckNumber() -#result3 = a_test3.compareNumber(number, guess) - -a_test4 = baseballgameclass.PrintResult() -#a_test4.printResult(result3) -#print(result3) - -a = 0 -b = {} -b = set() - while True: - if a == 0: + if checknewgame == 0: # check new game # get game size and max of number - size = a_test2.getGameSize() - b = a_test.createNumberSet(size[1], size[0]) - number = a_test.createGameNumber(b) - a = 1 - elif a != 3: + size = cInputNumber.getGameSize() + inputset = cGameNumber.createNumberSet(size[1], size[0]) + number = cGameNumber.createGameNumber(inputset) + checknewgame = 1 + elif checknewgame != 3: # running game while True: - guess = a_test2.getNumber(size[0]) - result3 = a_test3.compareNumber(number, guess) - a_test4.printResult(result3) - print(number) + guess = cInputNumber.getNumber(size[0]) # get created gaem number + result3 = cCheckNumber.compareNumber(number, guess) # compare input number and game number + cPrintResult.printResult(result3) # print result + # print(number) if result3[0] == size[0]: print('You win.') - b = input('continue a game (y or n) : ') - if b == 'y': - a = 0 + newgame = input('continue a game (y or n) : ') + if newgame == 'y': + checknewgame = 0 # continue game break else: - a = 3 + checknewgame = 3 # stop game break - elif a == 3: + elif checknewgame == 3: # exit game break diff --git a/kjg/python-the-hard-way/baseballgameclass.py b/kjg/python-the-hard-way/baseballgameclass.py index 2124a73..1852d02 100644 --- a/kjg/python-the-hard-way/baseballgameclass.py +++ b/kjg/python-the-hard-way/baseballgameclass.py @@ -3,8 +3,6 @@ import random class GameNumber(): # create game's numbers - #s = {} - #s = set() # create number set for game def createNumberSet(self, amount, gamesize): @@ -29,8 +27,6 @@ class GameNumber(): class CheckNumber(): # check number whether it is right - #strike = 0 - #ball = 0 # compare number between a guess answer and a right answer def compareNumber(self, gameNumber, guessNumber): @@ -56,21 +52,58 @@ class CheckNumber(): class InputNumber(): # user inputs numbers - #userGuess = [] - #amountNumber = [] def getGameSize(self): amountNumber = [] - amountNumber.append(int(input('put a game size : '))) - amountNumber.append(int(input('put a max of number : '))) + 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 - return amountNumber + 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): - print('put ', i+1, ' of numbers : ', end='') - userGuess.append(int(input())) + 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