def test_get_random_palabra(self): palabra = ServicesPartidas().get_random_palabra() self.assertEqual( palabra, { 'palabra': palabra.get('palabra'), 'tipo_palabra': palabra.get('tipo_palabra') })
def un_jugador(self): servicePartida = ServicesPartidas() pal = random.choice(Repositorios.palabrasList) nombre = input('Ingrese un nombre: ') dificultad = int( input("Ingrese una dificultad del 1 al 10" "(1 --> dificil, 10 --> facil): ")) partida = Partida(pal['palabra'], dificultad * len(pal['palabra']), pal['tipo_palabra'], nombre) while partida._intentos > 0: print('Palabra a adivinar: ', partida._palabra_aciertos) print('Pista: ', partida._tipo_palabra) print('Cantidad de intentos: ', partida._intentos) letra = input("Ingrese una letra: ").upper() if letra == 'SALIR': return True result = servicePartida.intentar_letra(partida, letra) if result == 'Gano': print(result, '! Felicitaciones, la palabra era: ', partida._palabra) partida._intentos = 0 return True else: # os.system('clear') print(result) if result == 'Perdio': print(result, '! Lo lamento, la palabra era: ', partida._palabra) return True
def dos_jugadores(self): dicJugadores = {} servis = ServicesPartidas() for j in range(0, 2): nombreJugador = str(input("Ingrese su nombre: ")) intentosJugador = int(input("Ingrese la dificultad: ")) palabra = str( input("Ingrese una palabra para %s: " % nombreJugador)) tipoPalabra = str(input("Ingrese el tipo de palabra: ")) p = servis.iniciar_partida(nombreJugador, intentosJugador, palabra, tipoPalabra) for i in range(0, p.intentos): letra = str(input("\nIngrese una letra para adivinar: ")) if letra == 'salir': return True respuesta = servis.intentar_letra(p, letra.upper()) print(respuesta) if respuesta == 'Gano' or respuesta == 'Perdio': if j == 0: dicJugadores[nombreJugador] = p.__dict__ break else: dicJugadores[nombreJugador] = p.__dict__ with open('jugadores.json', 'w') as f: json.dump(dicJugadores, f, indent=2) return True
def dos_jugadores(self): services = ServicesPartidas() for i in range(0, 2): _nombre = input( '\n----> \tIngrese el nombre del jugador {}: '.format(i + 1)) _dificultad = int( input('\n----> \tIngrese la dificultad para {} ' '(1-10): '.format(_nombre.upper()))) _palabra = input('\n----> \t¿Qué palabra deberá adivinar ' '{}?: '.format(_nombre.upper())) _tipo_palabra = input('\n----> \t¿Qué tipo de palabra es?: ') p2 = services.iniciar_partida(_nombre, _dificultad, _palabra, _tipo_palabra) res = 'Continua' while res == 'Continua': letra = input('\n----> \tIngrese una letra: ') if letra == 'salir': return True res = services.intentar_letra(p2, letra.upper()) print('\t', p2._palabra_aciertos) if res == 'Gano': print('\n----> \tFelicitaciones {}, adivinaste!\n'.format( _nombre.upper())) elif res == 'Perdio': print( '\n----> \tPerdiste {}, mejor suerte la próxima.\n'.format( _nombre.upper())) print(RepoPartidas.partidas_list, "\n") return True
def un_jugador(self): nombre = str(input("Ingrese el nombre del jugador: ")) dificultad = int(input("Ingrese la dificultad[1,10]: ")) game1 = ServicesPartidas().iniciar_partida(nombre, dificultad, '', '') flag1 = 'Continua' while flag1 == 'Continua': print("---------------------------------") print("Jugador: " + game1._nombre_jugador) print("Pista: " + game1._tipo_palabra) print("Intentos restantes:" + str(game1._intentos)) letra = str(input("Ingrese una letra: ")) if letra == 'salir': print('Usted ha finalizado el juego') flag1 = 'Perdio' break flag1 = ServicesPartidas().intentar_letra(game1, letra) print("Aciertos: " + str(game1._palabra_aciertos)) print(flag1) print("---------------------------------") if flag1 == 'Gano' or flag1 == 'Perdio': ServicesPartidas().guardar_partida(game1._nombre_jugador, flag1, game1._palabra, game1._palabra_aciertos, game1._intentos) return True else: raise ValueError
def test_intentar_letra(self, dificultad, letras, result): servicePartida = ServicesPartidas() partida = servicePartida.iniciar_partida('claudio', dificultad, 'python', 'lenguaje de programacion') for letra in letras: result_aux = servicePartida.intentar_letra(partida, letra) self.assertEqual(result_aux, result)
def test_exceptionsintentar_letra_(self, dificultad, letras, result): servicePartida = ServicesPartidas() partida = servicePartida.iniciar_partida('claudio', dificultad, 'python', 'lenguaje de programacion') with self.assertRaises(ValueError): for letra in letras: servicePartida.intentar_letra(partida, letra)
def un_jugador(self): servicios = ServicesPartidas() nombre = str(input("Nombre: ")) intentos = int(input("Dificultad: ")) palabra = "" partida = servicios.iniciar_partida(nombre, intentos, palabra, "") self.pedir_letras(partida) return True
def un_jugador(self): servis = ServicesPartidas() nombreJugador = str(input("Ingrese su nombre: ")) intentosJugador = int(input("Ingrese la dificultad: ")) p = servis.iniciar_partida(nombreJugador, intentosJugador, '', '') for i in range(0, p.intentos): letra = input("\nIngrese una letra para adivinar: ") if letra == 'salir': return True respuesta = servis.intentar_letra(p, letra.upper()) print(respuesta) if respuesta == 'Gano' or respuesta == 'Perdio': return True
def un_jugador(self): nombre_jugador, dificultad = Ahorcado().jugador() partida = ServicesPartidas().iniciar_partida(nombre_jugador, dificultad) guia_palabra = Ahorcado().guiaPalabra(partida._palabra) print(guia_palabra) juego = Ahorcado().letras_de_jugador(0, partida, guia_palabra) return juego
def partida_de_uno_de_los_jugadores(self): nombre_jugador, dificultad = Ahorcado().jugador() palabra_adivinar = input("Ingrese palabra:\n") tipo_palabra_adivinar = input("Ingrese tipo de palabra\n") partida = ServicesPartidas().iniciar_partida(nombre_jugador, dificultad, palabra_adivinar, tipo_palabra_adivinar) return partida
def un_jugador(self): services = ServicesPartidas() _nombre = input('\n----> \tIngrese su nombre: ') _dificultad = int(input('\n----> \tIngrese la dificultad (1-10): ')) p1 = services.iniciar_partida(_nombre, _dificultad) res = 'Continua' while res == 'Continua': letra = input('\n----> \tIngrese una letra: ') if letra == 'salir': return True res = services.intentar_letra(p1, letra.upper()) print('\t', p1._palabra_aciertos) if res == 'Gano': print('\n----> \tFelicitaciones {}, adivinaste!\n'.format( _nombre.upper())) return True elif res == 'Perdio': print('\n----> \tPerdiste {}, mejor suerte la próxima.\n'.format( _nombre.upper())) return False
def pedir_letras(self, partida): servicios = ServicesPartidas() seguir = True while seguir is True: try: let = str(input("Letra: ")) except StopIteration: return if let == "salir": break result = servicios.intentar_letra(partida, let) print("\n", partida._palabra_aciertos) if result == "Gano": print("\nGANASTE! La palabra era: ", partida.palabra) return "Gano" seguir = False if result == "Perdio": print("\nPERDISTE! La palabra era: ", partida.palabra) return "Perdio" seguir = False
def un_jugador(self): gano = 'Gano' salida = 'salir' try: estado = True servPart = ServicesPartidas() nombre_jugador = input('Ingresa Tu Nombre: ') while True: try: dificultad = int(input('Elije dificultad 1 a 10 ')) partida0 = servPart.iniciar_partida( nombre_jugador, dificultad, '', '') break except Exception: print('Error, dificultad no valida') print('Okey empecemos, tu palabra a adivinar es de tipo', partida0.tipo_palabra) print('Primer y ultima letra', partida0.palabra[0], '-', partida0.palabra[-1]) for _ in range(0, partida0.intentos): letra = input('Ingrese letra: ') resultado = servPart.intentar_letra(partida0, letra) print(partida0.palabra_aciertos) print('Te quedan', partida0.intentos, 'intentos') print(partida0.nombre_jugador, resultado) if letra == salida: break if resultado == gano: break while estado: condicion = input('Quieres volver a jugar?(s/n): ') if condicion == 's': self.un_jugador() if condicion == 'n': estado = False else: print('Error, entrada erronea :/') except Exception: StopIteration return True
def un_jugador(self): nombre = str(input("Ingrese el nombre del jugador: ")) dificultad = int(input("Seleccione la dificultad entre 1-10: ")) partida = ServicesPartidas().iniciar_partida(nombre, dificultad) while True: letra = input(str("Ingrese la letra a intentar: ")) if letra == 'salir': print("Saliendo del juego...") break resultado = ServicesPartidas().intentar_letra(partida, letra) if resultado == 'Gano': print("Has ganado!") print("La palabra era: ", partida._palabra) break if resultado == 'Perdio': print("Has perdido") print("La palabra era: ", partida._palabra) break print(partida._palabra_aciertos) print("Continua") return True
def test_iniciar_partida(self): partida = ServicesPartidas().iniciar_partida( 'claudio', 3, 'python', 'lenguaje de programacion') self.assertDictEqual( partida.__dict__, { '_palabra': ['P', 'Y', 'T', 'H', 'O', 'N'], '_tipo_palabra': 'LENGUAJE DE PROGRAMACION', '_intentos': 18, '_nombre_jugador': 'CLAUDIO', '_palabra_aciertos': [None, None, None, None, None, None], })
def test_iniciar_partida_palabra_random(self): partida = ServicesPartidas().iniciar_partida('claudio', 3, '', '') palabra = partida.palabra tipo_palabra = partida.tipo_palabra palabra_acierto = partida.palabra_aciertos intentos = partida.intentos self.assertDictEqual(partida.__dict__, {'_palabra': palabra, '_tipo_palabra': tipo_palabra, '_intentos': intentos, '_nombre_jugador': 'CLAUDIO', '_palabra_aciertos': palabra_acierto, })
def letras_de_jugador(self, nro_jugador, partida, guia_palabra): juego = 'Continua' while juego == 'Continua': letra = input("ingrese una letra jugador:\n") if letra == 'salir' or letra == '3': break juego = ServicesPartidas().intentar_letra(partida, letra) completando_palabra = Ahorcado().add_letras( letra, partida._palabra, guia_palabra) Repositorios().historial[nro_jugador] = {partida: [letra, juego]} print(completando_palabra) print('cantidad de aciertos ' + str(Repositorios().aciertos)) print('cantidad de intentos ' + str(Repositorios().intentos)) print(juego) return True
def dos_jugadores(self): count = 0 while count == 0: count += 1 servicios = ServicesPartidas() n1 = str(input("\nIngrese el nombre del jugador 1: ")) dif = int(input("Ingrese la dificultad: ")) p1 = str( input("Palabra elegida por el jugador" + " 2 para el jugador 1: ")) t1 = str(input("Tipo de palabra: ")) partida1 = servicios.iniciar_partida(n1, dif, p1, t1) resultado = self.pedir_letras(partida1) dic = {} dic[0] = { "JUGADOR 1": { "Nombre": n1.upper(), "Resultado": resultado.upper() } } if count == 1: n2 = str(input("\nIngrese el" + " nombre del jugador 2: ")) dif2 = int(input("Ingrese la dificultad: ")) p2 = str( input("Palabra elegida por el jugador" + " 1 para el jugador 2: ")) t2 = str(input("Tipo de palabra: ")) partida2 = servicios.iniciar_partida(n2, dif2, p2, t2) resultado2 = self.pedir_letras(partida2) dic[1] = { "JUGADOR 2": { "Nombre": n2.upper(), "Resultado": resultado2.upper() } } servicios.add_partida(dic) return True
def dos_jugadores(self): servicePartida = ServicesPartidas() print('------------------') print('Juega el jugador 1') print('------------------') nombre1 = input('Jugador 1: Ingrese un nombre: ') dificultad1 = int( input('Jugador 1: Ingrese una dificultad del 1 al 10' ' (1 --> dificil, 10 --> facil): ')) palabra_adivinar1 = input( 'Jugador 2: Ingrese una palabra' ' (esta se utilizara para que juegue el jugador 1): ') tipo_palabra_adivinar1 = input( 'Jugador 2: Ingrese la pista o tipo de palabra: ') partida1 = Partida(palabra_adivinar1, dificultad1 * len(palabra_adivinar1), tipo_palabra_adivinar1, nombre1) os.system('clear') while partida1._intentos > 0: print('Palabra a adivinar: ', partida1._palabra_aciertos) print('Pista: ', partida1._tipo_palabra) print('Cantidad de intentos: ', partida1._intentos) print(nombre1.upper(), end=': ') letra = input("Ingrese una letra: ").upper() if letra == 'SALIR': return True result = servicePartida.intentar_letra(partida1, letra) if result == 'Gano': print(result, '! Felicitaciones, la palabra era: ', partida1._palabra) servicePartida.add_partida(partida1) partida1._intentos = 0 break else: print(result) if result == 'Perdio': print(result, '! Lo lamento, la palabra era: ', partida1._palabra) servicePartida.add_partida(partida1) break print('------------------') print('Juega el jugador 2') print('------------------') nombre2 = input('Jugador 2: Ingrese un nombre: ') dificultad2 = int( input('Jugador 2: Ingrese una dificultad del 1 al 10' ' (1 --> dificil, 10 --> facil): ')) palabra_adivinar2 = input( 'Jugador 1: Ingrese una palabra' ' (esta se utilizara para que juegue el jugador 2): ') tipo_palabra_adivinar2 = input( 'Jugador 1: Ingrese la pista o tipo de palabra: ') partida2 = Partida(palabra_adivinar2, dificultad2 * len(palabra_adivinar2), tipo_palabra_adivinar2, nombre2) os.system('clear') while partida2._intentos > 0: print('Palabra a adivinar: ', partida2._palabra_aciertos) print('Pista: ', partida2._tipo_palabra) print('Cantidad de intentos: ', partida2._intentos) print(nombre2.upper(), end=': ') letra = input("Ingrese una letra: ").upper() if letra == 'SALIR': return True result = servicePartida.intentar_letra(partida2, letra) if result == 'Gano': print(result, '! Felicitaciones, la palabra era: ', partida2._palabra) servicePartida.add_partida(partida2) partida2._intentos = 0 return True else: print(result) if result == 'Perdio': print(result, '! Lo lamento, la palabra era: ', partida2._palabra) servicePartida.add_partida(partida2) return True
def dos_jugadores(self): gano = 'Gano' salida = 'salir' try: estado1 = True estado2 = True estado3 = True while estado1: servPart = ServicesPartidas() while True: try: jugadador1 = input('Turno del Jugador 1,tu nombre?: ') dificultad1 = int( input('Que dificultad' ' eliges? (1-10): ')) palabra1 = input('Ingresa la palabra a adivinar: ') tipoPalabra1 = input('Ingresa el tipo de palabra: ') partida1 = servPart.iniciar_partida( jugadador1, dificultad1, palabra1, tipoPalabra1) break except Exception: print('Dificultad erronea :/') print('Llego la hora de adivinar!') for _ in range(0, partida1.intentos): letra1 = input('Ingrese letra: ') resultado = servPart.intentar_letra(partida1, letra1) print(partida1.palabra_aciertos) print('Te quedan', partida1.intentos, 'intentos') print(partida1.nombre_jugador, resultado) Repositorios.partida1 = partida1.__dict__ if resultado == gano: break if letra1 == salida: break print('Resultado Jugador 1', Repositorios.partida1) estado1 = False while estado2: while True: try: jugadador2 = input('Turno del jugador 2, tu nombre?: ') dificultad = int( input('Que dificultad' ' eliges? (1-10): ')) palabra = input('Ingresa la palabra a adivinar: ') tipoPalabra = input('Ingresa el tipo de palabra: ') partida2 = servPart.iniciar_partida( jugadador2, dificultad, palabra, tipoPalabra) break except Exception: print('Dificultad erronea :/') print('Llego la hora de adivinar!') for _ in range(0, partida2.intentos): letra2 = input('Ingrese letra: ') resultado2 = servPart.intentar_letra(partida2, letra2) print(partida2.palabra_aciertos) print('Te quedan', partida2.intentos, 'intentos') print(partida2.nombre_jugador, resultado2) Repositorios.partida2 = partida2.__dict__ if resultado2 == gano: break if letra2 == salida: break estado2 = False print('Resultado Jugador 2', Repositorios.partida2) while estado3: condicion = input('Quieres volver a jugar?(s/n): ') if condicion == 's': self.dos_jugadores() elif condicion == 'n': estado3 = False else: print('Error, entrada incorrecta :/') except Exception: StopIteration return True
def test_exceptions_valor_intentos_menor(self): with self.assertRaises(ValueError): ServicesPartidas().iniciar_partida('claudio', 0, '', '')
def dos_jugadores(self): nombre1 = str(input("Ingrese el nombre del primer jugador: ")) dificultad1 = int(input("Ingrese la dificultad (1-10): ")) palabra_adivinar1 = str( input("""Jugador 2, ingrese la palabra a adivinar por el jugador 1: """)) tipo_palabra_adivinar1 = str( input("""Jugador 2, ingrese el tipo de palabra: """)) partida = ServicesPartidas().iniciar_partida(nombre1, dificultad1, palabra_adivinar1, tipo_palabra_adivinar1) print("=====================================") print("Tipo de palabra: ", partida._tipo_palabra) print("=====================================") while True: letra = input(str("Jugador 1, ingrese la letra a intentar: ")) if letra == 'salir': break resultado1 = ServicesPartidas().intentar_letra(partida, letra) if resultado1 == 'Gano': break if resultado1 == 'Perdio': break nombre2 = str(input("Ingrese el nombre del segundo jugador: ")) dificultad2 = int(input("Ingrese la dificultad (1-10): ")) palabra_adivinar2 = str( input("""Jugador 1, ingrese la palabra a adivinar por el jugador 2: """)) tipo_palabra_adivinar2 = str( input("""Jugador 1, ingrese el tipo de palabra: """)) partida = ServicesPartidas().iniciar_partida(nombre2, dificultad2, palabra_adivinar2, tipo_palabra_adivinar2) print("=====================================") print("Tipo de palabra: ", partida._tipo_palabra) print("=====================================") while True: letra = input(str("Jugador 2, ingrese la letra a intentar: ")) letra.upper() if letra == 'salir': break resultado2 = ServicesPartidas().intentar_letra(partida, letra) if resultado2 == 'Gano': break if resultado2 == 'Perdio': break hist = dict() hist['JUGADOR 1'] = { 'NOMBRE': nombre1, 'PALABRA': palabra_adivinar1.upper(), 'RESULTADO': resultado1 } hist['JUGADOR 2'] = { 'NOMBRE': nombre2, 'PALABRA': palabra_adivinar2.upper(), 'RESULTADO': resultado2 } print("Historial de la partida:") for i in hist: print(hist[i]) return True
if opcion == 1: print("1.Un jugador \n2.Dos jugadores") opcion = int(input("Seleccione una opcion")) if opcion == 1: Ahorcado().un_jugador() elif opcion == 2: Ahorcado().dos_jugadores() elif opcion == 2: print("1.Ver historial de partidas\n" "2.Agregar una palabra al repositrio\n" "3.Ver lista de palabras\n" "4.Salir") opcion = int(input("Seleccione una opcion")) if opcion == 1: print("###HISTORIAL DE PARTIDAS###") historial = Repositorios().partidasList print(historial) elif opcion == 2: print("###AGREGAR PALABRA###") palabra = str(input("Ingrese la palabra")) tipo = str(input("Ingrese el tipo de palabra")) print(ServicesPartidas().guardar_palabra(palabra, tipo)) elif opcion == 3: print("###LSITA DE PALABRAS###") print(Repositorios().palabrasList) elif opcion == 4: break elif opcion == 3: print("Fin del juego....") break
def dos_jugadores(self): print("Ahora juega jugador 1") nombre1 = str(input("Ingrese el nombre del jugador 1: ")) dificultad1 = int(input("Ingrese la dificultad[1,10]: ")) palabra_adivinar1 = str(input("Jugador 2 ingrese la palabra que " "debera adivinar jugador 1: ")) tipo_plabra1 = str(input("Jugador 2 ingrese el tipo " "de palabra que es: ")) game1 = ServicesPartidas().iniciar_partida(nombre1, dificultad1, palabra_adivinar1, tipo_plabra1) flag1 = 'Continua' while flag1 == 'Continua': print("---------------------------------") print("Jugador 1: " + game1._nombre_jugador) print("Pista: " + game1._tipo_palabra) print("Intentos restantes:" + str(game1._intentos)) letra = str(input("Ingrese una letra: ")) if letra == 'salir': print('Jugador 1 ha finalizado el juego') flag1 = 'Perdio' break flag1 = ServicesPartidas().intentar_letra(game1, letra) print("Aciertos: " + str(game1._palabra_aciertos)) print("Jugador 1 : " + flag1) print("---------------------------------") print("Ahora juega jugador 2") nombre2 = str(input("Ingrese el nombre del jugador 2: ")) dificultad2 = int(input("Ingrese la dificultad[1,10]: ")) palabra_adivinar2 = str(input("Jugador 1 ingrese la palabra que" "debera adivinar jugador 2: ")) tipo_plabra2 = str(input("Jugador 1 ingrese el tipo" "de palabra que es: ")) game2 = ServicesPartidas().iniciar_partida(nombre2, dificultad2, palabra_adivinar2, tipo_plabra2) flag2 = 'Continua' while flag2 == 'Continua': print("---------------------------------") print("Jugador 2: " + game2._nombre_jugador) print("Pista: " + game2._tipo_palabra) print("Intentos restantes:" + str(game2._intentos)) letra = str(input("Ingrese una letra: ")) if letra == 'salir': print('Jugador 2 ha finalizado el juego') flag2 = 'Perdio' break flag2 = ServicesPartidas().intentar_letra(game2, letra) print("Aciertos: " + str(game2._palabra_aciertos)) print("Jugador 2 : " + flag2) print("---------------------------------") # Se verifica si ambos terminaron y guarda las palabras que # ingresaron en palabrasList y ademas guarda la partida de # ambos en partidasList if ((flag1 == 'Gano' or flag1 == 'Perdio') and (flag2 == 'Gano' or flag2 == 'Perdio')): ServicesPartidas().guardar_palabra(game1._palabra, game1._tipo_palabra) ServicesPartidas().guardar_palabra(game2._palabra, game2._tipo_palabra) ServicesPartidas().guardar_partida(game1._nombre_jugador, flag1, game1._palabra, game1._palabra_aciertos, game1._intentos) ServicesPartidas().guardar_partida(game2._nombre_jugador, flag2, game2._palabra, game2._palabra_aciertos, game2._intentos) return True else: raise ValueError