Exemplo n.º 1
0
 def __init__(self, nombre):
     """
     Constructor de JugadorTramposo.
     Creamos nuestros propios dados, que serán trucados.
     :param nombre: nombre del jugador.
     """
     super().__init__(nombre)
     caras = JugadorTramposo.__valores_dado
     self.__dados_trucados = (Dado(*caras), Dado(*caras), Dado(*caras))
Exemplo n.º 2
0
async def on_message(message):
    if message.content.startswith('.teste'):
        channel = message.channel
        await channel.send("Teste")

    if message.content.startswith(".dado"):
        await message.channel.send(Dado())

    if message.content.lower().find("beco sem saida") != -1:
        await message.channel.send("De novo essa merda")

    if message.content.lower().startswith(".velha"):
        await message.channel.send(NewGame.NovoJogo())

    if message.content.startswith("##"):
        try:
            position = message.content[2:4].upper()
            jogador = message.author.name
            await message.channel.send(NewGame.NovaJogada(position, jogador))
        except:
            await message.channel.send("Deu alguma merda!")

    if message.content.lower().startswith("salve"):
        await message.channel.send("Um Salve pre " + message.author.name)
    if message.content.lower().startswith(".forca"):
        await message.channel.send(JogoDaForca.sendTemplate())
Exemplo n.º 3
0
 def crear_tablero(self):
     self.mapa()
     self.castillo()
     self.flechas()
     self.crear_casilleros()
     self.titulo_vidas = pilas.actores.Texto(
         "VIDAS:", fuente="data/fonts/American Captain.ttf", x=355, y=332)
     self.crear_vidas()
     self.titulo_energia = pilas.actores.Texto(
         "ENERGIA:", fuente="data/fonts/American Captain.ttf", x=369, y=260)
     self.crear_energia()
     self.titulo_tiempo = pilas.actores.Texto(
         "TIEMPO:", fuente="data/fonts/American Captain.ttf", x=369, y=220)
     self.crear_timer()
     self.dado = Dado(x=-110, y=134)
     self.dado.conectar_presionado(self.tirar_dado)
Exemplo n.º 4
0
    def executa_rodada(self):
        """
        Efetua a jogada e retorna True caso exista um vencedor ou False quando não
        """
        self.__rodada += 1
        if self.__rodada == 1:
            self.mostra_tabuleiro()
        houve_vencedor = False
        for ijogador in range(len(self.jogadores)):
            jogador = self.jogadores[ijogador][0]
            if jogador.situacao == PERDEU:
                continue

            num_dado = Dado.jogada()
            jogador.realiza_jogada(num_dado)
            ipropriedade = self.jogadores[ijogador][1] + num_dado

            # priorizando aqui o recebimento do bonus
            if ipropriedade >= len(self.propriedades):
                jogador.credita_bonus_volta_tabuleiro(self.bonus_por_rodada)

            ipropriedade = (ipropriedade - 1) % len(self.propriedades)
            self.jogadores[ijogador][1] = ipropriedade
            propriedade = self.propriedades[ipropriedade]

            pagou_alug = False
            comprou_prop = False

            # se tem proprietário, paga aluguel
            if propriedade.proprietario:
                pagou_alug = True
                jogador.paga_aluguel(propriedade)

            # se não tem verifica se é ou não para comprar
            elif jogador.pode_comprar(propriedade):
                comprou_prop = True
                jogador.efetua_compra(propriedade)

            if self.mostra_jogo:
                print("    > JOGADOR:", jogador.nome, " DADO:", num_dado,
                      "  A:", pagou_alug, " C:", comprou_prop, " P:",
                      ipropriedade)

            if jogador.situacao == PERDEU:
                self.__qtd_perdedores += 1
                if self.__qtd_perdedores == self.__qtd_jogadores - 1:
                    houve_vencedor = True
                    break

        self.mostra_tabuleiro()
        return houve_vencedor
Exemplo n.º 5
0
def main(stdscr):

    posicoes = [[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']]

    controle = Controle(stdscr=stdscr)
    tela = Tela(stdscr=stdscr, posicoes=posicoes)
    jogadores = Jogadores(controle=controle, posicoes=posicoes)
    tela.reiniciar_tela()
    dado = Dado()

    jogador_x = 0
    jogador_o = 0

    while True:

        controle.espaco_do_tabuleiro()

        if jogadores.fim_de_partida is False:
            if controle.entrada == "\n":
                jogadores.jogar()

            if jogadores.fim_de_partida is True:
                ganhador = jogadores.vencedor
                if ganhador == "X":
                    jogador_x += 1
                if ganhador == "O":
                    jogador_o += 1

        if controle.entrada == "y":
            for i in range(3):
                for j in range(3):
                    posicoes[i][j] = " "

            controle.pos_y = 0
            controle.pos_x = 0
            jogadores.vencedor = None
            jogadores.fim_de_partida = False
            tela.reiniciar_tela()

        if controle.entrada == 'h':
            tela.ajuda()
        else:
            tela.tabuleiro(controle)
            tela.placar(jogador_x, jogador_o)
            if jogadores.fim_de_partida is True:
                tela.fim_de_jogo(jogadores.vencedor)
            controle.cursor()
Exemplo n.º 6
0
from dado import Dado
import pygal


#Cria um dado de 6 lados

dado = Dado()

#faz um lançamento e armazenao o resultado

resultados = []

for result_dado in range(100):
    resultado = dado.roll()
    resultados.append(resultado)
    print(resultados)


# Analisando os resultados

frequencias = []


for value in range(dado.dado_lados+1):
    frequencia = resultados.count(value)
    frequencias.append(frequencia)
    print(frequencias)

#visualizaçao dos dados

graf = pygal.Bar()
Exemplo n.º 7
0
from dado import Dado

while True:
    print("")

    print(Dado.Roll())

    print("")

    cont = input("Deseja rolar o dado novamente:")
    if cont == "não":
        break
Exemplo n.º 8
0
    return False
# preguntar el numero de jugadores
n_jugadores = int(input('numero de jugadores (2 a 4)'))
if n_jugadores < 2 or n_jugadores > 4:
    print('numero invalido de jugadores')
    exit()

dic_jugadores = {}
for i in range(n_jugadores):
    dic_jugadores[f'Jugador{i+1}'] = 0

# si los dados son iguales, se suma el numero obtenido al puntaje
# si un dado es 1 se resta el otro dado al puntaje
# si obtienes 3 en los dos dados, lanza de nuevo (sumo el puntaje)
# si obtienes 5 en los dos dados, no se suma el puntaje y pasa al siguiente
dado1 = Dado()
dado2 = Dado()
while not hay_ganador(dic_jugadores):
    # lanza cada jugador y se acumulan los puntos
    for jugador in dic_jugadores:
        input(f'lanza el {jugador}: ')          # pausa para el lanzamiento
        dado1.lanzar()
        dado2.lanzar()
        print(f'resultado: {dado1} , {dado2}')
        # logica del juego
        if dado1 == dado2:
            if dado1.valor == 5:
                # no se suma y pasa al siguiente
                print('pasa al siguiente jugador')
                continue
            if dado1.valor == 3:
Exemplo n.º 9
0
       '3. Exibir o topo da pilha\n'
       '4. Exibir o tamanho da pilha\n'
       '5. Exibir a pilha\n'
       '0. Sair')
 op_pilha = int(input('Informe a opção: '))
 if op_pilha == 0:
     time.sleep(1)
     print('Encerrando operações.')
     break
 elif op_pilha == 1:
     p_nome = str(input('Informe o nome do filme/série: '))
     p_ano = int(input('Informe o ano de lançamento: '))
     p_produtora = str(
         input('Informe a distribuidora do filme/série: '))
     time.sleep(2)
     p_op = Dado(p_nome, p_ano, p_produtora)
     pilha.push(p_op)
 elif op_pilha == 2:
     if pilha.isEmpy() == True:
         print(
             f'Pilha encontrase vazia. Não há elemento para ser removido.'
         )
     else:
         print('O elemento do topo será removido.')
         time.sleep(3)
         pilha.pop()
 elif op_pilha == 3:
     time.sleep(1)
     print(pilha.exibeTopo())
 elif op_pilha == 4:
     time.sleep(1)
Exemplo n.º 10
0
from dado import Dado
from cosas.saludos import hola

print(hola)

# lanzar el dado 3 veces y mostrar el resultado
dado_magico = Dado(nombre='magico')
dado_normal = Dado(nombre='normal')

print(dado_magico)

print(dado_magico.lanzar())
print(dado_magico.lanzar())
print(dado_magico.lanzar())

print(dado_magico.obtener_resultados())
print(dado_magico)

print(dado_normal.lanzar())
# dado_magico == dado_normal

if dado_magico + dado_normal == 7:
    print('ganaste')
else:
    print(f'el resultado es {dado_magico + dado_normal}')
# dado_magico.caras = 20
# print(f'magico: {dado_magico.caras}, normal: {dado_normal.caras}')
Exemplo n.º 11
0
from dado import Dado

Dado1 = Dado()
Dado2 = Dado()
resultados = []
for i in range(0,1000,1):
    resultados.append(Dado1.tira_dados() + Dado2.tira_dados())

frecuencias = []
for valor in range(2,Dado1.num_caras+Dado2.num_caras+1):
    frecuencia = resultados.count(valor)
    frecuencias.append(frecuencia)

#Visualización de los resultados
# Genera una lista con valores del 1 al número de caras
valores_x = list(range(2,Dado1.num_caras+Dado2.num_caras+1))
print(valores_x)
data = [Bar(x=valores_x,y = frecuencias)]

configuracion_eje_x = {'title':'Resultados','dtick':1}
configuracion_eje_y = {'title':'frecuencia'}

my_layout = Layout(title='Resultados de tirar un dado de 6 caras 1000 veces',xaxis = configuracion_eje_x,
                  yaxis = configuracion_eje_y)

offline.plot({'data':data,'layout':my_layout},filename = 'd6_d6.html')
Exemplo n.º 12
0
from no import No
from dado import Dado
from pilha import Pilha
from lista import Lista
from fila import Fila
pilha = Pilha()
lista = Lista()
fila = Fila()
no = No()
# LISTA
l1 = Dado('Avengers', 2019, 'Marvel')
l2 = Dado('Batman Begins', 2005, 'Warner Bros')
l3 = Dado('The Simpsons', 2006, 'FOX')
l4 = Dado('Spider-Man - Homecoming', 2017, 'Sony')
l5 = Dado('Toy Story', 2019, 'Pixar')
#lista.remove(l1)
lista.append(l1)
lista.append(l2)
print(lista.Tamanho())
lista.insert(1, l3)
lista.insert(0, l4)
print(lista.Tamanho())

print(lista.Listando())
print('\n\n')
lista.insert(7, l5)

print(lista.Listando())
#lista.remove()
print(lista.Listando())
#lista.remove(l1)
Exemplo n.º 13
0
class Tablero(Base):
    def __init__(self, nombre, musica):
        Base.__init__(self)
        self.nombre = nombre
        self.musica = musica
        self.energia = 3

    def fondo(self):
        pilas.fondos.Fondo('data/img/fondos/tablero_img.png')

    def escena_ayuda(self):
        self.sonido_boton.reproducir()
        pilas.almacenar_escena(Ayuda())

    def act(self):
        self.dado.activar()
        self.boton.activar()
        self.ayuda.activar()

    def des(self):
        self.dado.desactivar()
        self.boton.desactivar()
        self.ayuda.desactivar()

    def regresar(self):
        self.sonido_boton.reproducir()
        self.musicaa.solo_detener()
        musica = open("data/archivos/musica.txt", 'rb')
        self.estado = pickle.load(musica)
        musica.close()
        pilas.mundo.deshabilitar_sonido(False)
        if (self.estado == True):
            self.musica.encender()
        elif (self.estado == False):
            self.musica.apagar()
        pilas.recuperar_escena()

    def volver(self):
        def continuar():
            self.sonido_boton.reproducir()
            self.text1.eliminar()
            self.si.eliminar()
            self.no.eliminar()
            self.cartel.eliminar()
            self.act()
            self.timer.continuar()

        def crear_texto():
            self.text1 = pilas.actores.Texto(
                "Esta seguro que desea salir?",
                fuente="data/fonts/American Captain.ttf",
                y=100)
            self.si = pilas.actores.Boton(y=-35)
            self.si.definir_imagen('data/img/interfaz/si.png')
            self.si.escala = 0.7
            self.no = pilas.actores.Boton(y=-165)
            self.no.definir_imagen('data/img/interfaz/no.png')
            self.no.escala = 0.7
            self.si.conectar_presionado(self.regresar)
            self.no.conectar_presionado(continuar)

        self.sonido_boton.reproducir()
        self.timer.stopTimer()
        self.des()
        self.cartel = pilas.actores.Actor('data/img/iconos/cartel.png')
        self.cartel.escala = [1.8, 1], 0.8
        pilas.mundo.agregar_tarea(1, crear_texto)

    def cargar_sonidos(self):
        self.sonido_boton = pilas.sonidos.cargar("data/audio/boton.ogg")
        self.sonido_dado = pilas.sonidos.cargar("data/audio/dice.ogg")
        self.sonido_teleport = pilas.sonidos.cargar("data/audio/teleport.ogg")
        self.sonido_vida = pilas.sonidos.cargar("data/audio/pierde_vida.ogg")
        self.gana_energia = pilas.sonidos.cargar("data/audio/gana_energia.ogg")
        self.pierde_energia = pilas.sonidos.cargar(
            "data/audio/pierde_energia.ogg")
        self.gana_partida = pilas.sonidos.cargar("data/audio/victoria.ogg")
        self.pierde_partida = pilas.sonidos.cargar("data/audio/derrota.ogg")

    def iniciar(self):
        self.fondo()
        archivo = open('data/archivos/usuarios.json', 'r')
        self.usuarios = json.load(archivo)
        archivo.close()
        archivo1 = open('data/archivos/estadisticas.json', 'r')
        self.datos = json.load(archivo1)
        archivo1.close()
        self.estado = True
        self.cargar_sonidos()
        self.crear_tablero()
        self.iniciar_personaje()
        self.crear_interfaz()
        self.casillero_actual = casillero_mapa
        self.camino_actual = camino_1

    def iniciar_sonido(self):
        musica = open("data/archivos/musica.txt", 'rb')
        est = pickle.load(musica)
        musica.close()
        self.music = pilas.sonidos.cargar(
            "data/audio/Enchanted Festival Loop.ogg")
        if est:
            self.music.reproducir(repetir=True)
        self.musicaa = Sonido(musica=self.music,
                              x=-445,
                              y=-190,
                              estado=est,
                              imagen1="data/img/interfaz/on1.png",
                              imagen2="data/img/interfaz/off1.png")

    def crear_interfaz(self):
        self.iniciar_sonido()
        self.boton = pilas.actores.Boton(x=-450, y=-313)
        self.boton.definir_imagen('data/img/interfaz/atras.png')
        self.boton.escala = 0.09
        self.boton.conectar_presionado(self.volver)
        self.ayuda = pilas.actores.Boton(x=-445, y=-250)
        self.ayuda.definir_imagen('data/img/interfaz/ayuda.png')
        self.ayuda.escala = 0.2
        self.ayuda.conectar_presionado(self.escena_ayuda)

    def crear_tablero(self):
        self.mapa()
        self.castillo()
        self.flechas()
        self.crear_casilleros()
        self.titulo_vidas = pilas.actores.Texto(
            "VIDAS:", fuente="data/fonts/American Captain.ttf", x=355, y=332)
        self.crear_vidas()
        self.titulo_energia = pilas.actores.Texto(
            "ENERGIA:", fuente="data/fonts/American Captain.ttf", x=369, y=260)
        self.crear_energia()
        self.titulo_tiempo = pilas.actores.Texto(
            "TIEMPO:", fuente="data/fonts/American Captain.ttf", x=369, y=220)
        self.crear_timer()
        self.dado = Dado(x=-110, y=134)
        self.dado.conectar_presionado(self.tirar_dado)

    def crear_timer(self):
        self.timer = Temporizador(x=420, y=220)
        self.timer.setDatas(self.usuarios[self.nombre]['tiempo'])
        self.timer.iniciar()
        pilas.mundo.agregar_tarea_siempre(1, self.timer_preguntar)

    def timer_preguntar(self):
        if (self.timer.getTime() == 0):
            self.perdio()

    def _cont_energia(self):
        num = 'x' + str(self.energia)
        self.contador_energia = pilas.actores.Texto(
            num, fuente="data/fonts/American Captain.ttf", x=460, y=260)

    def crear_energia(self):
        #Rayo
        self.rayo = pilas.actores.Actor('data/img/iconos/rayo.png',
                                        x=430,
                                        y=260)
        self.rayo.escala = 0.050
        #Energia
        self._cont_energia()

    def crear_vidas(self):
        #Vida 1
        self.vida1 = pilas.actores.Actor('data/img/iconos/corazon.png')
        self.vida1.escala = 0.050
        self.vida1.x = 350
        self.vida1.y = 300
        #Vida 2
        self.vida2 = pilas.actores.Actor('data/img/iconos/corazon.png')
        self.vida2.escala = 0.050
        self.vida2.x = 390
        self.vida2.y = 300
        #Vida 3
        self.vida3 = pilas.actores.Actor('data/img/iconos/corazon.png')
        self.vida3.escala = 0.050
        self.vida3.x = 430
        self.vida3.y = 300
        self.vidas = 3

    def iniciar_personaje(self):
        self.personaje = pilas.actores.Actor('data/img/iconos/character.png')
        self.personaje.escala = 0.2
        self.personaje.x = casillero_mapa[0]
        self.personaje.y = casillero_mapa[1]
        self.personaje.decir("Hola! Empecemos a jugar!")

    def flechas(self):
        #Flecha 1
        self.flecha1 = pilas.actores.Actor(
            'data/img/interfaz/flecha_arriba.png', x=-338, y=-62)
        self.flecha1.escala = 0.040
        #Flecha 2
        self.flecha2 = pilas.actores.Actor(
            'data/img/interfaz/flecha_arriba.png', x=-182, y=-59)
        self.flecha2.escala = 0.040
        #Flecha 3
        self.flecha3 = pilas.actores.Actor(
            'data/img/interfaz/flecha_arriba.png', x=132, y=-58)
        self.flecha3.escala = 0.040
        #Flecha 4
        self.flecha4 = pilas.actores.Actor(
            'data/img/interfaz/flecha_abajo.png', x=-184, y=-251)
        self.flecha4.escala = 0.050

    def castillo(self):
        self.casti = pilas.actores.Actor('data/img/iconos/castillo.png',
                                         x=-365,
                                         y=315)
        self.casti.escala = 0.11

    def mapa(self):
        self.mapita = pilas.actores.Actor('data/img/iconos/mapa.png',
                                          x=391,
                                          y=-325)
        self.mapita.escala = 0.08

    def crear_casilleros(self):
        self.casi_tele = []
        self.casi = casilleros[:]
        self.imagenes_posiciones = casilleros[:]
        self.imagenes = {
            "data/img/iconos/Casillero.png":
            self.usuarios[self.nombre]['casillero_normal'],
            "data/img/iconos/CasilleroVioleta.png":
            self.usuarios[self.nombre]['casillero_violeta'],
            "data/img/iconos/CasilleroNaranja.png":
            self.usuarios[self.nombre]['casillero_naranja'],
            "data/img/iconos/CasilleroVerde.png":
            self.usuarios[self.nombre]['casillero_verde'],
            "data/img/iconos/ahorcado.png":
            4,
            "data/img/iconos/Casillero_comodin.png":
            4,
            "data/img/iconos/pare.png":
            4,
            "data/img/iconos/perder_vida.png":
            4,
            "data/img/iconos/teletransportacion.png":
            4
        }
        for x in range(0, len(casilleros_bifurcacion)):
            casillero = pilas.actores.Actor("data/img/iconos/bifurcacion.png")
            casillero.escala = 0.055
            casillero.x = casilleros_bifurcacion[x][0]
            casillero.y = casilleros_bifurcacion[x][1]
        for x in self.imagenes.keys():
            for i in range(0, self.imagenes[x]):
                casillero = pilas.actores.Actor(x)
                self.posi = random.randrange(0, len(self.casi))
                casille = self.casi[self.posi]
                self.casi.remove(casille)
                self.imagenes_posiciones[self.imagenes_posiciones.index(
                    casille)] = x
                casillero.x = casille[0]
                casillero.y = casille[1]
                casillero.escala = 0.09
                if (x == "data/img/iconos/teletransportacion.png"):
                    tele = (casillero.x, casillero.y)
                    self.casi_tele.append(tele)
        self.guardar_imagenes()

    def guardar_imagenes(self):
        datos = open("data/archivos/imagenes.json", 'w')
        elementos = {
            "imagenes": self.imagenes_posiciones,
            "casilleros": casilleros
        }
        datos.write(json.dumps(elementos))
        datos.close()

    def actualizar_energia(self):
        archivo_energia = open('data/archivos/energia.txt', 'rb')
        boolean = pickle.load(archivo_energia)
        archivo_energia.close()
        self.contador_energia.eliminar()
        if (boolean == True):
            self.energia = self.energia + 1
            self.gana_energia.reproducir()
        else:
            self.energia = self.energia - 1
            self.pierde_energia.reproducir()
        self._cont_energia()
        if (self.energia == 0):
            self.perder_vida()

    def ver_est(self):
        if self.estado:
            self.musicaa.encender()

    def desactivar_sonido(self):
        musica = open("data/archivos/musica.txt", 'rb')
        self.estado = pickle.load(musica)
        musica.close()
        if self.estado:
            self.musicaa.apagar()
            pilas.mundo.deshabilitar_sonido(False)

    def gano(self):
        self.des()
        self.guardar_tiempo()
        self.gana_partida.reproducir()
        pantalla1 = pilas.actores.Actor('data/img/fondos/trono.jpg')
        titulo1 = pilas.actores.Actor('data/img/enunciados/victoria.png')
        titulo1.escala = 0.5
        self.boton1 = pilas.actores.Boton(x=-420, y=-300)
        self.boton1.definir_imagen('data/img/interfaz/atras.png')
        self.boton1.escala = 0.1
        self.boton1.conectar_presionado(self.regresar)

    def perdio(self):
        self.des()
        self.guardar_tiempo()
        self.pierde_partida.reproducir()
        pantalla = pilas.actores.Actor('data/img/fondos/derrota.jpg')
        titulo_perdio = pilas.actores.Actor("data/img/enunciados/derrota.png")
        titulo_perdio.escala = 0.5
        self.boton2 = pilas.actores.Boton(x=-420, y=-300)
        self.boton2.definir_imagen('data/img/interfaz/atras.png')
        self.boton2.escala = 0.1
        self.boton2.conectar_presionado(self.regresar)

    def perder_vida(self):
        self.sonido_vida.reproducir()
        self.contador_energia.eliminar()
        if (self.vidas == 3):
            self.vida3.eliminar()
            self.vidas -= 1
            self.energia = 3
            self._cont_energia()
        elif (self.vidas == 2):
            self.vida2.eliminar()
            self.vidas -= 1
            self.energia = 3
            self._cont_energia()
        elif (self.vidas == 1):
            self.des()
            self.energia = 0
            self._cont_energia()
            self.vida1.eliminar()
            self.perdio()

    def teletransportacion(self):
        self.sonido_teleport.reproducir()
        self.personaje.escala = [0.4, 0.2], 1.5
        casillero_tele = random.choice(self.casi_tele)
        self.casillero_actual = casillero_tele
        if (self.casillero_actual in camino_1):
            self.camino_actual = camino_1
        elif (self.casillero_actual in camino_2):
            self.camino_actual = camino_2
        elif (self.casillero_actual in camino_3):
            self.camino_actual = camino_3
        elif (self.casillero_actual in camino_4):
            self.camino_actual = camino_4
        elif (self.casillero_actual in camino_5):
            self.camino_actual = camino_5
        elif (self.casillero_actual in camino_6):
            self.camino_actual = camino_6
        elif (self.casillero_actual in camino_7):
            self.camino_actual = camino_7
        elif (self.casillero_actual in camino_8):
            self.camino_actual = camino_8
        self.personaje.x = self.casillero_actual[0]
        self.personaje.y = self.casillero_actual[1]
        self.personaje.escala = [0.3, 0.2], 1.5

    def retroceder(self):
        i = self.camino_actual.index(self.casillero_actual) - 1
        self.casillero_actual = self.camino_actual[i]
        self.personaje.x = [self.casillero_actual[0]]
        self.personaje.y = [self.casillero_actual[1]]
        #Parches para que funcione al caer en una bifurcacion
        if (self.casillero_actual in camino_2) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0],
                                     self.casillero_actual[1] + 1)
        if (self.casillero_actual in camino_3) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0],
                                     self.casillero_actual[1] - 1)
        if (self.casillero_actual in camino_4) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0],
                                     self.casillero_actual[1] + 1)
        if (self.casillero_actual in camino_5) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0] + 1,
                                     self.casillero_actual[1])
        if (self.casillero_actual in camino_6) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0] - 1,
                                     self.casillero_actual[1])
        if (self.casillero_actual in camino_7) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0] - 1,
                                     self.casillero_actual[1])
        if (self.casillero_actual in camino_8) and (self.camino_actual.index(
                self.casillero_actual) < 1):
            self.casillero_actual = (self.casillero_actual[0] + 1,
                                     self.casillero_actual[1])
        self.preguntar_accion()

    def guardar_tiempo(self):
        self.timer.stopTimer()
        self.tiempo_pasado = self.timer.getTime()
        self.datos[self.nombre]["tiempo"] = self.tiempo_pasado
        self.datos[self.nombre]["rayos"] = self.energia
        archivo = open('data/archivos/estadisticas.json', 'w')
        archivo.write(json.dumps(self.datos))
        archivo.close()

    def preguntar(self):
        def borrar1():
            self.izquierda.desactivar()
            self.izquierda.destruir()
            self.derecha.desactivar()
            self.derecha.destruir()
            self.cartel_bifurcacion.destruir()
            self.act()

        def borrar2():
            self.arriba.desactivar()
            self.arriba.destruir()
            self.izquierda.desactivar()
            self.izquierda.destruir()
            self.cartel_bifurcacion.destruir()
            self.act()

        def borrar3():
            self.arriba.desactivar()
            self.arriba.destruir()
            self.abajo.desactivar()
            self.abajo.destruir()
            self.cartel_bifurcacion.destruir()
            self.act()

        def bifurcacion1_izquierda():
            self.camino_actual = camino_1
            self.casillero_actual = self.camino_actual[0]
            borrar1()

        def bifurcacion1_derecha():
            self.camino_actual = camino_2
            self.casillero_actual = self.camino_actual[0]
            borrar1()

        def bifurcacion2_arriba():
            self.camino_actual = camino_3
            self.casillero_actual = self.camino_actual[0]
            borrar2()

        def bifurcacion2_izquierda():
            self.camino_actual = camino_4
            self.casillero_actual = self.camino_actual[0]
            borrar2()

        def bifurcacion3_arriba():
            self.camino_actual = camino_7
            self.casillero_actual = self.camino_actual[0]
            borrar2()

        def bifurcacion3_izquierda():
            self.camino_actual = camino_8
            self.casillero_actual = self.camino_actual[0]
            borrar2()

        def bifurcacion4_arriba():
            self.camino_actual = camino_5
            self.casillero_actual = self.camino_actual[0]
            borrar3()

        def bifurcacion4_abajo():
            self.camino_actual = camino_6
            self.casillero_actual = self.camino_actual[0]
            borrar3()

        self.cartel_bifurcacion = pilas.actores.Actor(
            'data/img/iconos/cartel_bifurcacion.png', x=8, y=100)
        self.cartel_bifurcacion.escala = 1
        if (self.casillero_actual == (391, -265)):
            self.izquierda = pilas.actores.Boton(x=10, y=175)
            self.izquierda.definir_imagen('data/img/interfaz/izquierda.png')
            self.izquierda.escala = 0.5
            self.derecha = pilas.actores.Boton(x=10, y=120)
            self.derecha.definir_imagen('data/img/interfaz/derecha.png')
            self.derecha.escala = 0.5
            self.izquierda.conectar_presionado(bifurcacion1_izquierda)
            self.derecha.conectar_presionado(bifurcacion1_derecha)
        if (self.casillero_actual == (131, -148)):
            self.arriba = pilas.actores.Boton(x=10, y=175)
            self.arriba.definir_imagen('data/img/interfaz/arriba.png')
            self.arriba.escala = 0.5
            self.izquierda = pilas.actores.Boton(x=10, y=120)
            self.izquierda.definir_imagen('data/img/interfaz/izquierda.png')
            self.izquierda.escala = 0.5
            self.arriba.conectar_presionado(bifurcacion2_arriba)
            self.izquierda.conectar_presionado(bifurcacion2_izquierda)
        if (self.casillero_actual == (133, -18)):
            self.arriba = pilas.actores.Boton(x=10, y=175)
            self.arriba.definir_imagen('data/img/interfaz/arriba.png')
            self.arriba.escala = 0.5
            self.izquierda = pilas.actores.Boton(x=10, y=120)
            self.izquierda.definir_imagen('data/img/interfaz/izquierda.png')
            self.izquierda.escala = 0.5
            self.arriba.conectar_presionado(bifurcacion3_arriba)
            self.izquierda.conectar_presionado(bifurcacion3_izquierda)
        if (self.casillero_actual == (-185, -151)):
            self.arriba = pilas.actores.Boton(x=10, y=175)
            self.arriba.definir_imagen('data/img/interfaz/arriba.png')
            self.arriba.escala = 0.5
            self.abajo = pilas.actores.Boton(x=10, y=120)
            self.abajo.definir_imagen('data/img/interfaz/abajo.png')
            self.abajo.escala = 0.5
            self.arriba.conectar_presionado(bifurcacion4_arriba)
            self.abajo.conectar_presionado(bifurcacion4_abajo)

    def verde(self):
        pilas.almacenar_escena(Adivinanza(self.nombre, self.datos))

    def naranja(self):
        pilas.almacenar_escena(Trabalenguas(self.nombre, self.datos))

    def violeta(self):
        pilas.almacenar_escena(Chistes())

    def ahorcado_juego(self):
        pilas.almacenar_escena(Ahorcado(self.nombre, self.datos))

    def preguntar_accion(self):
        if (self.casillero_actual in casilleros_bifurcacion):
            pilas.mundo.agregar_tarea(2.5, self.preguntar)
        elif (self.imagenes_posiciones[casilleros.index(
                self.casillero_actual)] == "data/img/iconos/pare.png"):
            pilas.mundo.agregar_tarea(2.5, self.retroceder)
            pilas.mundo.agregar_tarea(3, self.act)
        elif (self.imagenes_posiciones[casilleros.index(
                self.casillero_actual)] == "data/img/iconos/perder_vida.png"):
            pilas.mundo.agregar_tarea(2.3, self.perder_vida)
            pilas.mundo.agregar_tarea(2.5, self.act)
        elif (self.imagenes_posiciones[casilleros.index(self.casillero_actual)]
              == "data/img/iconos/teletransportacion.png"):
            pilas.mundo.agregar_tarea(2.5, self.teletransportacion)
            pilas.mundo.agregar_tarea(3, self.act)
        elif (self.imagenes_posiciones[casilleros.index(
                self.casillero_actual)] == "data/img/iconos/Casillero.png"):
            pilas.mundo.agregar_tarea(2.5, self.act)
        elif (self.imagenes_posiciones[casilleros.index(self.casillero_actual)]
              == "data/img/iconos/CasilleroVerde.png"):
            pilas.mundo.agregar_tarea(2.5, self.verde)
            pilas.mundo.agregar_tarea(3, self.actualizar_energia)
            pilas.mundo.agregar_tarea(3.2, self.act)
        elif (self.imagenes_posiciones[casilleros.index(self.casillero_actual)]
              == "data/img/iconos/CasilleroVioleta.png"):
            pilas.mundo.agregar_tarea(2, self.desactivar_sonido)
            pilas.mundo.agregar_tarea(2.5, self.violeta)
            pilas.mundo.agregar_tarea(3.4, self.ver_est)
            pilas.mundo.agregar_tarea(4, self.act)
        elif (self.imagenes_posiciones[casilleros.index(self.casillero_actual)]
              == "data/img/iconos/CasilleroNaranja.png"):
            pilas.mundo.agregar_tarea(2.5, self.naranja)
            pilas.mundo.agregar_tarea(3, self.actualizar_energia)
            pilas.mundo.agregar_tarea(3.2, self.act)
        elif (self.imagenes_posiciones[casilleros.index(
                self.casillero_actual)] == "data/img/iconos/ahorcado.png"):
            pilas.mundo.agregar_tarea(2.5, self.ahorcado_juego)
            pilas.mundo.agregar_tarea(3, self.actualizar_energia)
            pilas.mundo.agregar_tarea(3.2, self.act)
        elif (self.imagenes_posiciones[casilleros.index(self.casillero_actual)]
              == "data/img/iconos/Casillero_comodin.png"):

            def eliminar_cartel():
                self.boton_violeta.desactivar()
                self.boton_violeta.destruir()
                self.boton_naranja.desactivar()
                self.boton_naranja.destruir()
                self.boton_verde.desactivar()
                self.boton_verde.destruir()
                self.cartel_comodin.destruir()

            def conectar_violeta():
                pilas.mundo.agregar_tarea(1, self.desactivar_sonido)
                pilas.mundo.agregar_tarea(1.5, self.violeta)
                pilas.mundo.agregar_tarea(1.6, eliminar_cartel)
                pilas.mundo.agregar_tarea(1.7, self.ver_est)
                pilas.mundo.agregar_tarea(1.9, self.act)

            def conectar_naranja():
                pilas.mundo.agregar_tarea(1.5, self.naranja)
                pilas.mundo.agregar_tarea(1.6, eliminar_cartel)
                pilas.mundo.agregar_tarea(1.7, self.actualizar_energia)
                pilas.mundo.agregar_tarea(1.9, self.act)

            def conectar_verde():
                pilas.mundo.agregar_tarea(1.5, self.verde)
                pilas.mundo.agregar_tarea(1.6, eliminar_cartel)
                pilas.mundo.agregar_tarea(1.7, self.actualizar_energia)
                pilas.mundo.agregar_tarea(1.9, self.act)

            def generar_botones():
                #Boton violeta
                self.boton_violeta = pilas.actores.Boton(x=10, y=87)
                self.boton_violeta.definir_imagen(
                    'data/img/interfaz/boton_violeta.png')
                self.boton_violeta.escala = 0.7
                self.boton_violeta.conectar_presionado(conectar_violeta)
                #Boton naranja
                self.boton_naranja = pilas.actores.Boton(x=10, y=-65)
                self.boton_naranja.definir_imagen(
                    'data/img/interfaz/boton_naranja.png')
                self.boton_naranja.escala = 0.7
                self.boton_naranja.conectar_presionado(conectar_naranja)
                #Boton verde
                self.boton_verde = pilas.actores.Boton(x=16, y=-225)
                self.boton_verde.definir_imagen(
                    'data/img/interfaz/boton_verde.png')
                self.boton_verde.escala = 0.7
                self.boton_verde.conectar_presionado(conectar_verde)

            self.des()
            self.cartel_comodin = pilas.actores.Actor(
                'data/img/iconos/cartel_comodin.png', y=-70)
            self.cartel_comodin.escala = [2.5, 2], 0.8
            pilas.mundo.agregar_tarea(1, generar_botones)

    def mover(self, mov):
        mover_x = []
        mover_y = []
        for x in mov:
            mover_x.append(x[0])
            mover_y.append(x[1])
        self.personaje.x = pilas.interpolar(mover_x, 2)
        self.personaje.y = pilas.interpolar(mover_y, 2)

    def tirar_dado(self):
        self.sonido_dado.reproducir()
        n = self.dado.tirar()
        mov = []
        self.des()
        for x in range(n):
            #Movimiento en camino_1
            if (self.casillero_actual
                    in camino_1) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_1) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_1) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_1) - 1) and (x < n):
                self.camino_actual = random.choice(sorteo_b2)
                self.casillero_actual = self.camino_actual[0]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_1) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_1) - 1) and (x
                                                                        == n):
                self.casillero_actual = casilleros_bifurcacion[1]
                mov.append(self.casillero_actual)
            #Movimiento en camino_2
            if (self.casillero_actual
                    in camino_2) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_2) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_2) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_2) - 1) and (x < n):
                self.camino_actual = random.choice(sorteo_b3)
                self.casillero_actual = self.camino_actual[0]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_2) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_2) - 1) and (x
                                                                        == n):
                self.casillero_actual = casilleros_bifurcacion[2]
                mov.append(self.casillero_actual)
            #Movimiento en camino_3
            if (self.casillero_actual
                    in camino_3) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_3) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_3) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_3) - 1) and (x < n):
                self.camino_actual = random.choice(sorteo_b3)
                self.casillero_actual = self.camino_actual[0]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_3) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_3) - 1) and (x
                                                                        == n):
                self.casillero_actual = casilleros_bifurcacion[2]
                mov.append(self.casillero_actual)
            #Movimiento en camino_4
            if (self.casillero_actual
                    in camino_4) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_4) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_4) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_4) - 1) and (x < n):
                self.camino_actual = random.choice(sorteo_b4)
                self.casillero_actual = self.camino_actual[0]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_4) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_4) - 1) and (x
                                                                        == n):
                self.casillero_actual = casilleros_bifurcacion[3]
                mov.append(self.casillero_actual)
            #Movimiento en camino_5
            if (self.casillero_actual
                    in camino_5) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_5) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_5) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_5) - 1):
                self.casillero_actual = casillero_castillo
                mov.append(self.casillero_actual)
                break
            #Movimiento en camino_6
            if (self.casillero_actual
                    in camino_6) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_6) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_6) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_6) - 1):
                self.casillero_actual = casillero_castillo
                mov.append(self.casillero_actual)
                break
            #Movimiento en camino_7
            if (self.casillero_actual
                    in camino_7) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_7) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_7) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_7) - 1):
                self.casillero_actual = casillero_castillo
                mov.append(self.casillero_actual)
                break
            #Movimiento en camino_8
            if (self.casillero_actual
                    in camino_8) and (self.camino_actual.index(
                        self.casillero_actual) < len(camino_8) - 1):
                i = self.camino_actual.index(self.casillero_actual) + 1
                self.casillero_actual = self.camino_actual[i]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual
                  in camino_8) and (self.camino_actual.index(
                      self.casillero_actual) == len(camino_8) - 1):
                self.casillero_actual = casillero_castillo
                mov.append(self.casillero_actual)
                break
            #Movimiento inicial
            if (self.casillero_actual == casillero_mapa) and (n > 1):
                self.camino_actual = random.choice(sorteo_b1)
                self.casillero_actual = self.camino_actual[0]
                mov.append(self.casillero_actual)
            elif (self.casillero_actual == casillero_mapa) and (n == 1):
                self.casillero_actual = casilleros_bifurcacion[0]
                mov.append(self.casillero_actual)
    #Parche para que funcione adecuamente el camino 3 con la bifurcacion
        if (self.casillero_actual in camino_3) and (self.camino_actual.index(
                self.casillero_actual) > 1):
            self.casillero_actual = (self.casillero_actual[0],
                                     self.casillero_actual[1] - 1)
    #Parche para que funcionen adecuadamente los caminos 5 y 6 con los juegos
        if (self.casillero_actual in camino_5) and (self.camino_actual.index(
                self.casillero_actual) > 1):
            self.casillero_actual = (self.casillero_actual[0] - 1,
                                     self.casillero_actual[1])
            self.camino_actual = camino_8
        if (self.casillero_actual in camino_6) and (self.camino_actual.index(
                self.casillero_actual) > 9):
            self.casillero_actual = (self.casillero_actual[0] + 1,
                                     self.casillero_actual[1])
            self.camino_actual = camino_8
    #Parche para que funcione adecuadamente el casillero castillo
        if (self.casillero_actual in camino_8) and (self.camino_actual.index(
                self.casillero_actual) > 14):
            self.casillero_actual = (self.casillero_actual[0],
                                     self.casillero_actual[1] - 1)

    #Movimiento
        self.mover(mov)
        #Final
        if (self.casillero_actual == casillero_castillo):
            pilas.mundo.agregar_tarea(2.5, self.gano)
        else:
            #Acciones a realizar al caer en un casillero determinado
            self.preguntar_accion()
Exemplo n.º 14
0
 def __init__(self, base):
     dado = Dado(10)
     dado.nivel_pifia = 1
     dado.nivel_abierta = 10
     super().__init__(base, dado)
Exemplo n.º 15
0
 def __init__(self, base):
     dado = Dado(100)
     super().__init__(base, dado)