예제 #1
0
    def colocar_pieza(self, i, j):

        print("Presionaste", (i, j))
        if self.puede_colocar_pieza(i, j):
            gui.add_piece(i, j)
            self.tablero.pieces.agregar(edd.Mlist(i, j))
            self.p_ac.color = pieza.actual_piece._color
            self.tablero.t[i][j].agregar(self.p_ac)
            self.eliminar_hint()
            while True:
                o = randint(0, len(self.pieces[0]) - 1)
                if self.pieces[0][o].elegir:
                    self.pieces[0][o].cantidad -= 1
                    break
            if pieza.actual_piece._color == 'red':
                gui.nueva_pieza(piece_type=self.pieces[0][o].tipo,
                                color='blue')
                self.p_ac = self.pieces[0][o]
                self.borde_ac = self.pieces[0][o].tipo
                if not self.quedan_movimientos():
                    """ACÁ DEBERIA TERMINAR EL JUEGO"""
                    self.terminar_juego()
                    print('PERDISTE')
            else:
                gui.nueva_pieza(piece_type=self.pieces[0][o].tipo, color='red')
                self.p_ac = self.pieces[0][o]
                self.borde_ac = self.pieces[0][o].tipo
                if not self.quedan_movimientos():
                    """ACÁ DEBERIA TERMINAR EL JUEGO"""
                    self.terminar_juego()
                    print('PERDISTE')
예제 #2
0
    def click_number(self, number):

        if self.tablero.estados[int(number) -
                                1][1][0] == pieza.actual_piece._color:
            p = self.tablero.devolver_estado(int(number))
            borrar = p[0]
            num = p[1]
            agregar = p[2]

            for piece in borrar:
                gui.pop_piece(piece[0], piece[1])

            for p in agregar:
                if p[2].rotacion is None:
                    gui.nueva_pieza(piece_type=p[2].tipo, color=p[2].color)
                    gui.add_piece(p[0], p[1])
                else:
                    gui.nueva_pieza(piece_type=p[2].tipo, color=p[2].color)
                    while self.borde_ac != p[2].rotacion:
                        pieza.actual_piece.rotate()
                    gui.add_piece(p[0], p[1])

                if pieza.actual_piece._color == 'red':
                    p = randint(0, len(self.pieces) - 1)
                    self.pieces[0][p].cantidad -= 1
                    self.p_ac = self.pieces[0][p]
                    self.borde_ac = self.pieces[0][p].tipo
                    gui.nueva_pieza(piece_type=self.pieces[0][p].tipo,
                                    color='blue')
                else:
                    p = randint(0, len(self.pieces) - 1)
                    self.pieces[0][p].cantidad -= 1
                    self.p_ac = self.pieces[0][p]
                    self.borde_ac = self.pieces[0][p].tipo
                    gui.nueva_pieza(piece_type=self.pieces[0][p].tipo,
                                    color='red')

            while num >= int(number):
                try:
                    gui.pop_number()

                except IndexError:
                    pass
                num -= 1

            MyInterface.num = get_next_number()

        else:
            print('DEBES APRETAR UN ESTADO QUE SEA TUYO!')
예제 #3
0
    def __init__(self):

        self.npieza = elegir_pieza()
        self.color = ""
        self.rojo = ""
        self.azul = ""
        self.numeros = 0
        self.hint = ""

        e = randint(0, 1)
        if e == 1:
            self.color = "red"
        else:
            self.color = "blue"

        # falta ver color y si hay y guardarla
        gui.nueva_pieza(color=self.color, piece_type=self.npieza)
        i = randint(0, 7)
        j = randint(0, 7)
        agregar_valor(i, j, self.npieza)
        gui.add_piece(i, j)
        poner = str(i) + str(j) + str(self.npieza)
        DATOS.colores.agregar_nodo(self.color)
        DATOS.puestas.agregar_nodo(poner)
        DATOS.posiciones.agregar_nodo(str(i) + str(j))

        self.npieza = elegir_pieza()
        if self.npieza == "salir":
            print("Se terminaron las piezas :(")
            self.terminar_juego()
        if FUNCIONES.revisar_opcion(DATOS.fila1, DATOS.fila2, DATOS.fila3,
                                    DATOS.fila4, DATOS.fila5, DATOS.fila6,
                                    DATOS.fila7, DATOS.fila8, self.npieza,
                                    DATOS.posiciones) == False:
            self.terminar_juego()
        if self.color == "red":
            self.color = "blue"
        else:
            self.color = "red"
        gui.nueva_pieza(color=self.color, piece_type=self.npieza)

        pass
예제 #4
0
 def __init__(self):
     self.id = 0
     self.j1 = jugador(0, 'rojo')
     self.j2 = jugador(0, 'azul')
     self.tablero = Tablero()
     self.pieces = edd.Mlist(L_Pieces, L_Pieces1)
     self.p_ac = Pieza(tipo=pieza.actual_piece._type,
                       color=pieza.actual_piece._color,
                       cantidad=0)
     self.ij = edd.Mlist(randint(0, 7), randint(0, 7))
     gui.add_piece(self.ij[0], self.ij[1])
     self.tablero.t[self.ij[0]][self.ij[1]].agregar(
         Pieza(pieza.actual_piece._type, 0))
     p = randint(0, len(self.pieces) - 1)
     self.pieces[0][p].cantidad -= 1
     self.borde_ac = self.pieces[0][p].tipo
     gui.nueva_pieza(piece_type=self.pieces[0][p].tipo, color='red')
     self.tablero.pieces.agregar(edd.Mlist(self.ij[0], self.ij[1]))
     if not self.quedan_movimientos():
         print('perdiste')
예제 #5
0
    def colocar_pieza(self, i, j):
        if FUNCIONES.revisar_bordes(i, j, self.npieza, DATOS.fila1,
                                    DATOS.fila2, DATOS.fila3, DATOS.fila4,
                                    DATOS.fila5, DATOS.fila6, DATOS.fila7,
                                    DATOS.fila8, DATOS.posiciones) == True:
            if self.hint == "":
                pass
            else:
                gui.pop_piece(int(self.hint[0]), int(self.hint[1]))
                self.hint = ""
            print("Presionaste", (i, j))
            # comenta la siguiente linea y descomenta la que sigue para ver como se destaca un espacio
            gui.add_piece(i, j)
            DATOS.posiciones.agregar_nodo(str(i) + str(j))
            agregar_valor(i, j, self.npieza)
            poner = str(i) + str(j) + str(self.npieza)
            DATOS.puestas.agregar_nodo(poner)
            DATOS.colores.agregar_nodo(self.color)
            # aca guardar la jugada para poder borrarla despues
            if self.color == "red":
                self.rojo = str(i) + str(j)
                self.color = "blue"
            else:
                self.azul = poner
                self.color = "red"
            self.npieza = elegir_pieza()
            if self.npieza == "salir":
                print("Se terminaron las piezas :(")
                self.terminar_juego()
            if FUNCIONES.revisar_opcion(DATOS.fila1, DATOS.fila2, DATOS.fila3,
                                        DATOS.fila4, DATOS.fila5, DATOS.fila6,
                                        DATOS.fila7, DATOS.fila8, self.npieza,
                                        DATOS.posiciones) == False:
                self.terminar_juego()

            gui.nueva_pieza(color=self.color, piece_type=self.npieza)

        else:
            print("No se puede ingresar esa pieza en esa posicion.")
예제 #6
0
    def click_number(self, number):
        if self.hint == "":
            pass
        else:
            gui.pop_piece(int(self.hint[0]), int(self.hint[1]))
            self.hint = ""
        # borra el numero bien.
        for i in range(int(number), self.numeros):
            gui.pop_number()
            self.numeros -= 1

        tablero = CLASES.ListaLigada()
        colrs = CLASES.ListaLigada()
        # aca se ve el total de piezas que hay puestas en el numero guardado
        # borra las piezas, bien
        for i in range(DATOS.posiciones.len):
            x = int(str(DATOS.posiciones.obtener(i))[0])
            y = int(str(DATOS.posiciones.obtener(i))[1])
            gui.pop_piece(x, y)
        pos = DATOS.guardados.obtener(int(number) - 1)
        posic = CLASES.ListaLigada()
        # aca se crean otras listas para poder cambiar las otras
        for i in range(int(pos)):
            x = DATOS.posiciones.obtener(i)
            te = DATOS.puestas.obtener(i)
            co = DATOS.colores.obtener(i)
            tablero.agregar_nodo(str(te))
            colrs.agregar_nodo(str(co))
            posic.agregar_nodo(str(x))
        DATOS.puestas = CLASES.ListaLigada()
        DATOS.colores = CLASES.ListaLigada()
        DATOS.posiciones = CLASES.ListaLigada()
        for node in posic:
            node = str(node)
            DATOS.posiciones.agregar_nodo(node)
        for node in colrs:
            node = str(node)
            DATOS.colores.agregar_nodo(node)
        for node in tablero:
            node = str(node)
            DATOS.puestas.agregar_nodo(node)

        z = 0
        for elem in DATOS.puestas:
            e = str(elem)
            gui.nueva_pieza(colrs.obtener(z), e[2:])
            gui.add_piece(int(e[0]), int(e[1]))
            z += 1

        guar = CLASES.ListaLigada()
        for i in range(self.numeros):
            guar.agregar_nodo(str(DATOS.guardados.obtener(i)))

        DATOS.guardados = CLASES.ListaLigada()
        for i in range(guar.len):
            DATOS.guardados.agregar_nodo(str(guar.obtener(i)))
        self.npieza = elegir_pieza()

        if self.npieza == "salir":
            print("Se terminaron las piezas :(")
            self.terminar_juego()
        if FUNCIONES.revisar_opcion(DATOS.fila1, DATOS.fila2, DATOS.fila3,
                                    DATOS.fila4, DATOS.fila5, DATOS.fila6,
                                    DATOS.fila7, DATOS.fila8, self.npieza,
                                    DATOS.posiciones) == False:
            self.terminar_juego()

        gui.nueva_pieza(self.color, self.npieza)

        DATOS.fila1 = CLASES.ListaLigada()
        DATOS.fila2 = CLASES.ListaLigada()
        DATOS.fila3 = CLASES.ListaLigada()
        DATOS.fila4 = CLASES.ListaLigada()
        DATOS.fila5 = CLASES.ListaLigada()
        DATOS.fila6 = CLASES.ListaLigada()
        DATOS.fila7 = CLASES.ListaLigada()
        DATOS.fila8 = CLASES.ListaLigada()
        FUNCIONES.llenar_lista(DATOS.fila1)
        FUNCIONES.llenar_lista(DATOS.fila2)
        FUNCIONES.llenar_lista(DATOS.fila3)
        FUNCIONES.llenar_lista(DATOS.fila4)
        FUNCIONES.llenar_lista(DATOS.fila5)
        FUNCIONES.llenar_lista(DATOS.fila6)
        FUNCIONES.llenar_lista(DATOS.fila7)
        FUNCIONES.llenar_lista(DATOS.fila8)

        for pieza in DATOS.puestas:
            e = str(pieza)
            agregar_valor(int(e[0]), int(e[1]), e[2:])
예제 #7
0
class MyInterface(gui.GameInterface):

    def piece_clicked(self, row, column, section, piece):
        piece.selected = not piece.selected
        print("{}, {} Section: {}".format(row, column, section))

    def reverse_clicked(self, clockwise):
        print(clockwise)
        gui.set_points(100)

    def piece_section_entered(self, section, piece):
        print("Section entered {}".format(section))

    def hint_asked(self):
        print("Para k kieres saber eso jaja saludos")

    def save_game(self):
        print("Save game")

gui.init()
gui.set_quality("ultra")  # low, medium, high ultra
gui.set_animations(False)
gui.set_scale(1)  # Any float different from 0
gui.set_game_interface(MyInterface())  # GUI Listener
gui.add_piece(0, 0, random.choice(variables.HEXAGON_TYPES))


gui.run()

예제 #8
0
파일: demo.py 프로젝트: Zupeuc/Syllabus
 def colocar_pieza(self, i, j):
     print("Presionaste", (i, j))
     # comenta la siguiente linea y descomenta la que sigue para ver como se destaca un espacio
     gui.add_piece(i, j)
     gui.nueva_pieza() #Ojo con esto si no utilizan una nueva pieza obtendran un error
예제 #9
0
import random


class MyInterface(gui.GameInterface):
    def piece_clicked(self, row, column, section, piece):
        piece.selected = not piece.selected
        print("{}, {} Section: {}".format(row, column, section))

    def reverse_clicked(self, clockwise):
        print(clockwise)
        gui.set_points(100)

    def piece_section_entered(self, section, piece):
        print("Section entered {}".format(section))

    def hint_asked(self):
        print("Para k kieres saber eso jaja saludos")

    def save_game(self):
        print("Save game")


gui.init()
gui.set_quality("ultra")  # low, medium, high ultra
gui.set_animations(False)
gui.set_scale(1)  # Any float different from 0
gui.set_game_interface(MyInterface())  # GUI Listener
gui.add_piece(0, 0, random.choice(variables.HEXAGON_TYPES))

gui.run()
예제 #10
0
 def hint_asked(self):
     hints = self.p_hints()
     for piece in hints:
         gui.add_piece(piece[0], piece[1], piece_type='hint')
예제 #11
0
 def eliminar_hint(self):
     for i in range(8):
         for j in range(8):
             if gui.get_piece(i, j)._type == 'hint':
                 gui.add_piece(i, j, piece_type='blank')