diff --git a/codebreaker.py b/codebreaker.py index ae8aa27..c33c70c 100644 --- a/codebreaker.py +++ b/codebreaker.py @@ -1,34 +1,41 @@ -trueNumber = "1010"; - -class Codebreaker: - - def adivinar(self, numero=None): - if trueNumber == '': - return 'Number is not defined' - - if numero is None or len(numero) != 4 or 'e' not in list(numero): - return "error" - - if numero == trueNumber: - return True - - resultadoX = '' - resultado_ = '' - arrayNumber = [] - - for x in len(numero): - if(arrayNumber[numero[x]] == True): - return 'error' - - arrayNumber[numero[x]] = True - - numero = list(numero) - - for index, x in numero: - if trueNumber[index] == numero[index]: - resultadoX+='X' - - elif x in trueNumber: - resultado_='_' - - return resultadoX+resultado_ +TRUE_NUMBER = "1489" + + +class CodeBreaker: + + def adivinar(self, numero=None): + if TRUE_NUMBER == '': + return 'Number is not defined' + + if numero is None or len(numero) != 4: + return "Error: number must have 4 digits" + + if numero == TRUE_NUMBER: + return True + + caracter = '' + array_number = [1] + + # Evaluar si un número se repite se repite dentro de la secuencia + for x in range((len(numero))): + + if numero[x] in array_number: + return f"Error: you have already entered the number {numero[x]} in position {array_number.index(numero[x])}" + + array_number.append(numero[x]) + + numero = list(numero) + + for num in range(len(numero)): + # Realiza la búsqueda y compara uno a uno la posición del índice del 'TRUE_NUMBER' + # con el del número ingresado. + + if TRUE_NUMBER[num] == numero[num]: + caracter += 'X' + + elif numero[num] in TRUE_NUMBER: + caracter += '_' + else: + caracter += ' ' + + return caracter diff --git a/main.py b/main.py index a3e1ccd..0483933 100644 --- a/main.py +++ b/main.py @@ -1,18 +1,20 @@ -from codebreaker import Codebreaker +from codebreaker import CodeBreaker -intentos_totales = 10 -codebreaker = Codebreaker() +INTENTOS_TOTALES = 10 +codebreaker = CodeBreaker() intento = 0 -print('Jugar Codebreaker!') +print('Play Codebreaker!') -while intento != intentos_totales: - number = input('Numero:'); - resolve = codebreaker.adivinar(number) - print(resolve) - if resolve == True: - print('You win!!') - break +while intento != INTENTOS_TOTALES: + number = input('Numero:').strip() + resolve = codebreaker.adivinar(number) + print(resolve) + if resolve == True: + print('You win!!') + break + + intento += 1