def interruptorPrenderApagar(cambio, tableroEnJuego): """la funcion 'enciende' o 'apaga' las lamparas del tablero a partir de la coordenada ingresada por el usuario""" if tableroEnJuego[cambio] == leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaEncendida"): tableroEnJuego[cambio] = leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaApagada") else: tableroEnJuego[cambio] = leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaEncendida")
def generarLamparaAleatoria(): """la funcion devuelve las lamparas que se utilizaran en el tablero del modo aleatorio, apagadas o encendidas aleatoriamente""" lampara = randint(1, 2) if lampara == 1: lampara = leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaEncendida") else: lampara = leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaApagada") return lampara
def opcionDelUsuarioCoordenadas(puntosDeNivel): """recibe y valida el input del usuario""" global modo, opcionInicialAleatoria if modo == "predeterminado": letrasValidas = leerDAT.leerDAT( "modoPredeterminado", "ingresosValidos" ).split( "," ) #letrasValidas = coordenadasDeValidacion(int(leerDAT.leerDAT("modoPredeterminado", "dimensionDeTablero"))) else: letrasValidas = coordenadasAleatoriasValidas() while True: opcion = (input( "Elegir una celda del tablero usando LETRAS para las filas y NUMEROS para las columnas (ej: A3). O 'RE' para reiniciar o 'SA' para salir: " )).lower() if opcion in letrasValidas: if opcion == "re": resultadosYEstados.reiniciarNivel(puntosDeNivel) elif opcion == "sa": logger.guardar("El usuario arrugo", "") resultadosYEstados.abandonarJuego() else: return opcion else: logger.guardar("El usuario mando fruta: ", opcion) print("Entrada invalida. Reintentar")
def desarrolloDelJuego(nivelEnJuego): global turnos, tableros os.system("cls") ContadorDeTurnos = int(leerDAT.leerDAT("variablesDeInicio", "valorInicialDeContadorDeTurnos")) puntosDeNivel = int(leerDAT.leerDAT("puntaje", "puntajeInicial")) tableroEnJuego = tableros[nivelEnJuego] for i in range(int(turnos)): dinamicaDelJuego.impresionDelTableroDeJuego.imprimirEncabezadoDelTablero(nivelEnJuego) dinamicaDelJuego.impresionDelTableroDeJuego.imprimirTurnoEnJuegoYTurnosRestantes(ContadorDeTurnos, turnos) dinamicaDelJuego.impresionDelTableroDeJuego.imprimirTableroDeJuego(dimensionFilaDeTablero, tableroEnJuego) dinamicaDelJuego.cambiosEnTableroPorInputDeUsuario.efectoDelInputDelUsuario(opcionesDelUsuario.opcionDelUsuarioCoordenadas(puntosDeNivel), tableroEnJuego) puntosDeNivel = (int(lucesPrendidas(tableroEnJuego)) * valorDelamparaEncendida) if i == (int(turnos) - int(leerDAT.leerDAT("variablesDeInicio", "factorDeCompensacionContadorDeTurnos"))): dinamicaDelJuego.resultadosYEstados.perdedorSinMovimientos() if puntosDeNivel == 0: dinamicaDelJuego.resultadosYEstados.ganadorTodoApagado() ContadorDeTurnos += int(leerDAT.leerDAT("variablesDeInicio", "valorDeIncrementoDeTurnos")) os.system("cls") nivelEnJuego += int(leerDAT.leerDAT("variablesDeInicio", "valorDeIncrementoDeNiveles"))
def tablerosModoAleatorio(dimensionFilaDeTablero): """la funcion crea lista de cinco diccionarios, cada uno de los cuales es uno de los niveles del modo aleatorio, a partir de la dimension ingresada por el usuario""" tableros = [] cantidadDeNiveles = int( leerDAT.leerDAT("variablesDeInicio", "cantidadDeNiveles")) for i in range(cantidadDeNiveles): tableros.append( asignarLucesACoordenadas( generarListaDeCoordenadas(dimensionFilaDeTablero))) return tableros
def perdedorSinMovimientos(): """la funcion avisa al usuario que se quedo sin movimientos, muestra puntaje y nivel adquirido""" global puntos, nivelEnJuego os.system("cls") puntos = int(puntos) + int( leerDAT.leerDAT("puntaje", "ganador") ) #int(linecache.getline("configuracion.dat", 23)[0:4]) + puntos print("Sin movimientos. Perdiste") print("Nivel alcanzado:", nivelEnJuego + 1) print("Puntaje final: ", puntos) print("") input("Ingresar 's' para continuar ") opcionesDelUsuario.opcionDelUsuarioMenuInicial()
def inicioDelJuego(modo): """en donde se definen las variables de inicio...""" global turnos, nivelEnJuego, tableros, dimensionFilaDeTablero if modo == "predeterminado": dimensionFilaDeTablero = int(leerDAT.leerDAT("modoPredeterminado", "dimensionDeTablero")) tableros = generacionDeTableros.tablerosModoPredeterminado(dimensionFilaDeTablero) turnos = definirCantidadDeTurnos() desarrolloDelJuego(nivelEnJuego) if modo == "aleatorio": dimensionFilaDeTablero = int(opcionesDelUsuario.menuModoAleatorio()) tableros = generacionDeTableros.tablerosModoAleatorio(dimensionFilaDeTablero) turnos = definirCantidadDeTurnos() desarrolloDelJuego(nivelEnJuego)
def ganadorTodoApagado(): """la funcion avisa al usuario que completo el nivel o los cinco del juego, muestra puntaje y nivel adquirido""" os.system("cls") global puntos, nivelEnJuego, tableroEnJuego puntos = int(puntos) + int(leerDAT.leerDAT("puntaje", "ganador")) print("Felicitaciones. Completaste el nivel", nivelEnJuego + 1) print("Puntaje parcial: 500") print("Puntaje total: ", puntos) input("Ingresar 's' para continuar ") if nivelEnJuego == 4: print("Todos los niveles completados") input("Ingresar 's' para continuar ") opcionesDelUsuario.opcionDelUsuarioMenuInicial() nivelEnJuego = int(nivelEnJuego) + 1 estructuraDelJuego.desarrolloDelJuego(nivelEnJuego)
def lucesPrendidas(tablero): return (list(tablero.values())).count(leerDAT.leerDAT("variablesDeInicio", "caracterDeLamparaEncendida"))
def definirCantidadDeTurnos(): """la funcion define cantidad de turnos a partir de multiplicar dimension de linea de tablero (que se obtiene de la division del total de elementos -lamparas- por su raiz cuadrada- por 3, de acuerdo a la captura de datos (lease 'pdf de Rosita')""" factorDeDefinicionDeTurnos = int(leerDAT.leerDAT("variablesDeInicio", "multiplicadorDeTurnos")) turnos = dimensionFilaDeTablero * factorDeDefinicionDeTurnos return turnos
import os from datos import leerDAT from modulosOperativos import dinamicaDelJuego from modulosOperativos import opcionesDelUsuario from modulosOperativos.tableros import * valorDelamparaEncendida = int(leerDAT.leerDAT("puntaje", "lamparaEncendida")) #int(linecache.getline("configuracion.dat", 17)[0:3]) tableros = [] tableroEnJuego = {} nivelEnJuego = int(leerDAT.leerDAT("variablesDeInicio", "nivelEnJuego")) def inicioDelJuego(modo): """en donde se definen las variables de inicio...""" global turnos, nivelEnJuego, tableros, dimensionFilaDeTablero if modo == "predeterminado": dimensionFilaDeTablero = int(leerDAT.leerDAT("modoPredeterminado", "dimensionDeTablero")) tableros = generacionDeTableros.tablerosModoPredeterminado(dimensionFilaDeTablero) turnos = definirCantidadDeTurnos() desarrolloDelJuego(nivelEnJuego) if modo == "aleatorio": dimensionFilaDeTablero = int(opcionesDelUsuario.menuModoAleatorio()) tableros = generacionDeTableros.tablerosModoAleatorio(dimensionFilaDeTablero) turnos = definirCantidadDeTurnos() desarrolloDelJuego(nivelEnJuego) def definirCantidadDeTurnos(): """la funcion define cantidad de turnos a partir de multiplicar dimension de linea de tablero (que se obtiene de la division del total de elementos -lamparas- por su raiz cuadrada- por 3, de acuerdo a la captura de datos (lease 'pdf de Rosita')"""