Hola!! Para la universidad me pidieron realizar como trabajo final un juego didáctico , basándome en el aporte del foro pude llegar a lo que tenia en mente . Realice un juego matemático en donde se tienen que contestar correctamente los cálculos que solo son sumas simples ,mi consulta es como podría hacer para que aparezcan combinadas sumas y restas en el juego ,ademas tengo problemas con el puntaje que desaparece , lo que quiero lograr es que pasado 10 juegos avise que ha ganado el jugador.
Gracias.
import pilasengine
pilas = pilasengine.iniciar()
#defino puntaje
puntaje = pilas.actores.Puntaje(color = 'amarillo')
puntaje.x = -300
puntaje.y = 220
mi_mensaje = pilas.actores.Texto("Presione Esc para volver al menu", y=-210)
mi_mensaje.color= pilas.colores.Color(205,92,90)
def reiniciar():
# Obtiene todos los actores de la pantalla.
actores = pilas.actores.listar_actores()
# Elimina todos los actores excepto el fondo y el puntaje
for actor in actores:
if actor not in [puntaje, pilas.escena.fondo]:
actor.eliminar()
# Genera una pregunta nueva
crear_pregunta()
class PantallaBienvenida(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo= self.pilas.fondos.Espacio()
#Defino Puntaje
puntaje= pilas.actores.Puntaje(color='amarillo')
puntaje.x = -300
puntaje.y = 220
crear_pregunta()
pilas.eventos.pulsa_tecla_escape.conectar(self.regresar)
def ejecutar(self):
pass
def regresar(self, evento):
pilas.escenas.PantallaMenu()
class PantallaMenu(pilasengine.escenas.Escena):
def iniciar(self):
pilas.fondos.Noche()
pilas.actores.Menu(
[
('iniciar Juego' , iniciar_juego),
('salir' , salir_del_juego)
])
def iniciar_juego ():
print('Iniciar el Juego')
pilas.escenas.PantallaBienvenida()
def crear_pregunta():
#Defino preguntas al azar
preg1 = pilas.azar(0,50)
preg2 = pilas.azar(0,50)
pregunta = pilas.actores.Texto("Cuanto es: " + str(preg1) + " + " + str(preg2),
y=180,magnitud=25)
#DEFINO LOS PLANETAS
planeta1 = pilas.actores.Planeta(x = -200, y = 70)
planeta1.imagen = "planeta_naranja.png"
planeta1.escala = 1.5
planeta1.esverdadera = False
planeta2 = pilas.actores.Planeta(x = 0, y = 70)
planeta2.imagen = "planeta_marron.png"
planeta2.escala = 1.5
planeta2.esverdadera = False
planeta3 = pilas.actores.Planeta(x = 200, y = 70)
planeta3.imagen = "planeta_rojo.png"
planeta3.escala = 1.5
planeta3.esverdadera = False
#DEFINO RESPUESTAS
rta_1 = pilas.actores.Texto("",x=-200, y=70)
rta_2 = pilas.actores.Texto("",x = 0, y = 70)
rta_3 = pilas.actores.Texto("",x = 200, y = 70)
#Planetas posibles
planetas_posibles = [planeta1,planeta2,planeta3]
textos_posibles = [rta_1,rta_2,rta_3]
indiceok = pilas.azar(0,2)
respuesta_verdadera = planetas_posibles[indiceok]
respuesta_verdadera.esverdadera = True
texto_de_respuestaok = textos_posibles[indiceok]
texto_de_respuestaok.texto = str(preg1+preg2)
#Planetas falsos
if planeta1.esverdadera:
rta_2.texto = str(pilas.azar(0,100))
rta_3.texto = str(pilas.azar(0,100))
elif planeta2.esverdadera:
rta_1.texto = str(pilas.azar(0,100))
rta_3.texto = str(pilas.azar(0,100))
elif planeta3.esverdadera:
rta_1.texto = str(pilas.azar(0,100))
rta_2.texto = str(pilas.azar(0,100))
#CURSOR DISPARO
cursor_disparo = pilas.actores.CursorDisparo(y=-150)
cursor_disparo.aprender(pilas.habilidades.Arrastrable)
#COLISIONES
planetas = [planeta1,planeta2,planeta3]
pilas.colisiones.agregar(cursor_disparo,planetas,respuesta)
def respuesta(cursor_disparo, planeta):
if planeta.esverdadera:
cursor_disparo.decir("MUY BIEN!!!")
# Genera una estrella para mostrar que contesto
# bien
estrella = pilas.actores.Estrella()
estrella.x = planeta.x
estrella.y = planeta.y
estrella.escala = 0.2
estrella.escala = [2, 1] * 2
#Aumenta el puntaje
if puntaje.valor < 10:
puntaje.aumentar()
# Reinicia el juego pasados los 2 segundos.
pilas.tareas.una_vez(2, reiniciar)
else:
pilas.avisar("Haz Ganado!!!")
# Reinicia el juego pasados los 2 segundos.
pilas.tareas.una_vez(2, reiniciar)
else:
cursor_disparo.decir("VUELVE A INTENTARLO!")
pilas.camara.vibrar()
planeta.eliminar()
def salir_del_juego():
print('Salir del Juego')
pilas.terminar()
pilas.escenas.vincular(PantallaMenu)
pilas.escenas.vincular(PantallaBienvenida)
pilas.escenas.PantallaMenu()
pilas.ejecutar()