Пример #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 __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
Пример #3
0
    def retroceder(self):
        self.id += 1
        color = pieza.actual_piece._color
        i = len(self.tablero.pieces) - 1
        if len(self.tablero.pieces) == 1:
            print('NO PUEDES RETROCEDER SI NO HAS HECHO UNA JUGADA')
            pass

        else:
            while True:
                if self.tablero.get_piece(
                        self.tablero.pieces[i][0],
                        self.tablero.pieces[i][1])[0].color != color:
                    i -= 1
                    if i == 0:
                        print('NO PUEDES BORRAR LA PRIMERA PIEZA')
                        break
                else:
                    if i == 0:
                        print('NO SE PUEDE SACAR LA PRIMERA PIEZA EL JUEGO')
                    else:
                        gui.pop_piece(self.tablero.pieces[i][0],
                                      self.tablero.pieces[i][1])
                        self.tablero.retroceder(self.tablero.pieces[i][0],
                                                self.tablero.pieces[i][1])
                        del self.tablero.pieces[i]
                        if 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')

                    break
Пример #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.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!')
Пример #7
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:])
Пример #8
0
    def retroceder(self):
        if self.hint == "":
            pass
        else:
            gui.pop_piece(int(self.hint[0]), int(self.hint[1]))
            self.hint = ""

        if self.color == "red":
            if self.rojo == "":
                print("En tu ultima jugada no pusiste ninguna pieza :(")
                return
            quitar = self.rojo
            i = quitar[0]
            j = quitar[1]
            gui.pop_piece(int(i), int(j))
            self.rojo = ""
            self.color = "blue"
        else:
            if self.azul == "":
                print("En tu ultima jugada no pusiste ninguna pieza :(")
                return
            quitar = self.azul
            i = quitar[0]
            j = quitar[1]
            gui.pop_piece(int(i), int(j))
            self.color = "red"
            self.azul = ""
        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)
        nueva = CLASES.ListaLigada()
        tabl = CLASES.ListaLigada()
        col = CLASES.ListaLigada()
        j = 0
        for node in DATOS.posiciones:
            if node != str(i) + str(j):
                nueva.agregar_nodo(node)
            else:
                j += 1
        a = 0
        for node in DATOS.colores:
            if a != j:
                col.agregar_nodo(node)
                a += 1
            else:
                a += 1
        for node in DATOS.puestas:
            if str(node)[0] != i and str(node)[1] != j:
                tabl.agregar_nodo(node)
        DATOS.puestas = CLASES.ListaLigada()
        for node in tabl:
            DATOS.puestas.agregar_nodo(node)
        DATOS.posiciones = CLASES.ListaLigada()
        for node in nueva:
            DATOS.posiciones.agregar_nodo(node)
        DATOS.colores = CLASES.ListaLigada()
        for node in col:
            DATOS.colores.agregar_nodo(node)
        print("Presionaste retroceder")
Пример #9
0
 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