Ejemplo n.º 1
0
    def test_partida(self):
        p = self.test_info_jugador_nombre()

        ficha1 = ArrayFichas().sacar_ficha(0)  # FICHA IGLESIA
        ficha2 = ArrayFichas().sacar_ficha(16)  # ficha tipo 6
        ficha3 = ArrayFichas().sacar_ficha(12)  # tipo 4

        p.actualizar_zonas(ficha2, (7, 4))
        p.colocar_seguidor(ficha2, p.jugadores[0], 10)
        p.tablero.insertar(ficha2, 7, 4)
        p.algoritmo_relleno(7, 4)
        p.pintada_false()

        self.test_pasar_turno()

        p.actualizar_zonas(ficha3, (7, 6))
        p.colocar_seguidor(ficha3, p.jugadores[1], 12)
        p.tablero.insertar(ficha3, 7, 6)
        p.algoritmo_relleno(7, 6)
        p.pintada_false()

        p.actualizar_zonas(ficha1, (7, 5))
        p.tablero.insertar(ficha1, 7, 5)
        p.algoritmo_relleno(7, 5)
        p.pintada_false()

        expected = """P1 P1 P1
A2 P1 Ar
A2 P1 Ar
A2 P1 Ar
P1 P1 P1
"""
        self.assertEqual(expected, p.tablero.tablero[7][4].imprimir())
Ejemplo n.º 2
0
    def test_comprueba_Ficha_conC(self):
        p = Partida()
        l = Logica()
        l.array_aldeas.append([(2,2)]) #aldea de la fichaA1
        l.array_aldeas.append([(2,4)]) #aldea de la fichaA2
        l.array_aldeas.append([(1,1), (2,1), (3,1)])
        l.array_caminos.append([(5,2), (5,1)])
        l.array_caminos.append([(4,3)]) #camino de la fichaC1

        fichaA1 = ArrayFichas().sacar_ficha(1) #tipo2
        p.tablero.insertar(fichaA1, 2, 2)

        fichaA2 = ArrayFichas().sacar_ficha(2) #tipo2
        p.tablero.insertar(fichaA2, 2, 4)

        fichaC1 = ArrayFichas().sacar_ficha(57) #tipo17
        p.tablero.insertar(fichaC1, 4, 3)

        mi_ficha = ArrayFichas().sacar_ficha(57) #tipo17
        p.tablero.insertar(mi_ficha, 5, 3) #coloco mi_ficha debajo de la fichaC1

        l.comprueba_ficha(p.tablero, (5,3), mi_ficha)

        expected = [(4,3), (5,3)]

        self.assertEqual(expected, l.dame_camino((5,3)))
Ejemplo n.º 3
0
    def test_coloca_B2(self):
        p=Partida();
        l = Logica()
        l.array_caminos.append([(2,2)]) #camino de la fichaC1
        l.array_caminos.append([(2,2)]) #camino de la fichaC1
        l.array_caminos.append([(2,2),(2,1)]) #camino de la fichaC1 y fichaC4
        l.array_caminos.append([(2,4)]) #camino de la fichaC2
        l.array_caminos.append([(3,3)]) #camino de la fichaC3
        l.array_caminos.append([(3,3)]) #camino de la fichaC3
        l.array_caminos.append([(3,3)]) #camino de la fichaC3
        l.array_caminos.append([(3,3)]) #camino de la fichaC3

        fichaC1 = ArrayFichas().sacar_ficha(41) #tipo13
        fichaC2 = ArrayFichas().sacar_ficha(60) #tipo18
        fichaC3 = ArrayFichas().sacar_ficha(45) #tipo15
        fichaC4 = ArrayFichas().sacar_ficha(35) #tipo11
        mi_ficha = ArrayFichas().sacar_ficha(48) #tipo16

        p.tablero.insertar(mi_ficha, 2, 3)
        p.tablero.insertar(fichaC1, 2, 2)
        p.tablero.insertar(fichaC2, 2, 4)
        p.tablero.insertar(fichaC3, 3, 3)
        p.tablero.insertar(fichaC4, 2, 1)

        l.comprueba_ficha(p.tablero, (2,3), mi_ficha)

        expected=[[(2, 2)], [(2, 2), (2, 1)], [(3, 3)], [(3, 3)], [(3, 3)], [(3, 3), (2, 3)], [(2, 4), (2, 3)], [(2, 2), (2, 3)]]


        self.assertEqual(expected, l.array_caminos)
Ejemplo n.º 4
0
 def test_todas_pos_validas(self):
     t = Tablero()
     ficha1 = ArrayFichas().sacar_ficha(0)  #Todo aldea
     t.insertar(ficha1, 2, 2)
     ficha2 = ArrayFichas().sacar_ficha(22)  #Solo un lado con aldea
     expected = [[3, 2]]
     self.assertEqual(expected, t.todas_pos_validas(ficha2))
Ejemplo n.º 5
0
 def test_es_valida(self):
     t = Tablero()
     ficha1 = ArrayFichas().sacar_ficha(0)  #Todo aldea
     t.insertar(ficha1, 1, 1)
     ficha2 = ArrayFichas().sacar_ficha(70)  #tipo19
     ficha3 = ArrayFichas().sacar_ficha(1)  #tipo2
     self.assertFalse(t.es_valida(ficha2, 1, 2))
     self.assertTrue(t.es_valida(ficha3, 1, 2))
Ejemplo n.º 6
0
    def test_sacar_medio_ficha(self):
        f = ArrayFichas().sacar_ficha(25)
        expected = """A1 A1 A1
A1 A1 A1
A1 A1 A1
A1 A1 A1
P2 C3 P4
"""
        self.assertEqual(f.imprimir(), expected)
Ejemplo n.º 7
0
    def test_sacar_ult_ficha(self):
        f = ArrayFichas().sacar_ficha(70)
        expected = """P2 P2 P2
P2 I1 P2
P2 I1 P2
P2 I1 P2
P2 P2 P2
"""
        self.assertEqual(f.imprimir(), expected)
Ejemplo n.º 8
0
 def test_comprobacion_ficha_valida(self):
     t = Tablero()
     ficha1 = ArrayFichas().sacar_ficha(
         21)  # tipo7 Aldea por arriba y el resto pradera
     t.insertar(ficha1, 2, 2)
     ficha2 = ArrayFichas().sacar_ficha(
         24)  # tipo8 Aldea por 3 lados y camino por abajo
     ficha3 = ArrayFichas().sacar_ficha(48)  #tipo 15Todo camino
     self.assertTrue(t.comprobacion_ficha_valida(ficha2))
Ejemplo n.º 9
0
    def __init__(self):

        #Construye una matriz y la rellena con fichas de tipo vacia.
        #La matriz funciona con un margen de una fila por cada lado
        self.w = 10
        self.h = 10
        ficha = ArrayFichas().vacia
        inicial = ArrayFichas().inicial
        self.tablero = [[ficha for y in range(0, self.w)]
                        for x in range(0, self.h)]
        self.tablero[int(round(
            (self.w - 1) / 2.0))][int(round((self.h - 1) / 2.0))] = inicial
Ejemplo n.º 10
0
    def test_pintada_false(self):
        p = Partida()
        jugador = Jugador('Adrian', 'rojo')
        ficha1 = ArrayFichas().sacar_ficha(70)  #tipo19
        ficha2 = ArrayFichas().sacar_ficha(35)  #tipo11

        p.actualizar_zonas(ficha1, (6, 5))
        p.colocar_seguidor(ficha1, jugador, 13)  #3 de arriba
        p.tablero.insertar(ficha1, 6, 5)
        p.algoritmo_relleno(6, 5)
        p.pintada_false()

        self.assertEqual(False, p.tablero.tablero[6][5].pintada)
Ejemplo n.º 11
0
    def test_camino_no_completado(self):
        p=Partida();
        l = Logica()

        l.array_caminos.append([(2,2), (3,2)]) #camino de las fichas

        fichaC1 = ArrayFichas().sacar_ficha(23) #tipo8
        fichaC2 = ArrayFichas().sacar_ficha(55) #tipo17

        p.tablero.insertar(fichaC1, 2, 2)
        p.tablero.insertar(fichaC2, 3, 2)

        self.assertFalse(l.camino_completado(p.tablero,l.dame_camino((2,2))))
Ejemplo n.º 12
0
    def test_comprueba_Ficha_conCA(self):
        todos = []
        p = Partida()
        l = Logica()
        l.array_aldeas.append([(2,2)]) #aldea de la fichaA1
        l.array_aldeas.append([(2,4)]) #aldea de la fichaA2
        l.array_aldeas.append([(1,1), (2,1), (3,1)])
        l.array_caminos.append([(5,2), (5,3)])
        l.array_caminos.append([(4,3)]) #camino de la fichaC1
        l.array_caminos.append([(3,3)]) #camino de la fichaC2

        fichaA1 = ArrayFichas().sacar_ficha(1) #tipo2
        p.tablero.insertar(fichaA1, 2, 2)

        fichaA2 = ArrayFichas().sacar_ficha(2) #tipo2
        p.tablero.insertar(fichaA2, 2, 4)

        fichaC1 = ArrayFichas().sacar_ficha(57) #tipo17
        fichaC1.girar()
        p.tablero.insertar(fichaC1, 4, 3)

        fichaC2 = ArrayFichas().sacar_ficha(56) #tipo17
        p.tablero.insertar(fichaC2, 3, 3)

        mi_ficha = ArrayFichas().sacar_ficha(23) #tipo8
        p.tablero.insertar(mi_ficha, 2, 3) #coloco mi_ficha entre la fichaA1 y la fichaA2 y encima de la fichaC2

        l.comprueba_ficha(p.tablero, (2,3), mi_ficha)
        todos.append(l.dame_aldea((2,3)))
        todos.append(l.dame_camino((2,3)))

        expected = [[(2,4), (2,3), (2,2)], [(3,3), (2,3)]]

        self.assertEqual(expected, todos)
Ejemplo n.º 13
0
 def test_actualizar_zonas(self):
     p = Partida()
     jugador = Jugador('Adrian', 'rojo')
     ficha1 = ArrayFichas().sacar_ficha(70)  #tipo19
     ficha2 = ArrayFichas().sacar_ficha(35)  #tipo11
     p.actualizar_zonas(ficha1, (6, 6))
     p.colocar_seguidor(ficha1, jugador, 3)  #3 de arriba
     p.tablero.insertar(ficha1, 6, 5)
     p.actualizar_zonas(ficha2, (6, 6))
     p.tablero.insertar(ficha2, 6, 6)
     expected = [
         "r", "r", "r", 2, 2, 2, "r", 3, 4, "r", 3, 4, "r", "r", "r"
     ]
     self.assertEqual(expected, ficha2.zona_colorear)
Ejemplo n.º 14
0
    def test_aldea_no_completada(self):
        p=Partida();
        l = Logica()

        l.array_aldeas.append([(2,2), (2,3)]) #aldea de las fichas

        fichaC1 = ArrayFichas().sacar_ficha(14) #tipo5
        fichaC2 = ArrayFichas().sacar_ficha(6) #tipo3


        p.tablero.insertar(fichaC1, 2, 2)
        p.tablero.insertar(fichaC2, 2, 3)


        self.assertFalse(l.aldea_completada(p.tablero,l.dame_aldea((2,2))))
Ejemplo n.º 15
0
    def test_comprueba_Ficha_conDLA(self):
        todos = []
        p = Partida()
        l = Logica()
        l.array_aldeas.append([(1,1)]) #aldea de la fichaA1
        l.array_aldeas.append([(2,2), (2,3)]) #aldea de la fichaA1 y fichaA2
        l.array_aldeas.append([(2,3)]) #aldea de la fichaA1

        l.array_aldeas.append([(2,3)]) #aldea de la fichaA3
        l.array_aldeas.append([(2,3)]) #aldea de la fichaA3

        fichaA1 = ArrayFichas().sacar_ficha(14) #tipo5
        p.tablero.insertar(fichaA1, 2, 1)

        fichaA2 = ArrayFichas().sacar_ficha(19) #tipo7
        fichaA2.girar()
        fichaA2.girar()
        p.tablero.insertar(fichaA2, 1, 1)

        fichaA3 = ArrayFichas().sacar_ficha(16) #tipo6
        p.tablero.insertar(fichaA3, 2, 3)

        mi_ficha = ArrayFichas().sacar_ficha(5) #tipo3
        p.tablero.insertar(mi_ficha, 2, 2)

        l.comprueba_ficha(p.tablero, (2,1), fichaA1)

        expected = [[(1,1), (2,1)], [(2,1), (2,2), (2,3)],  [(2,3)]]

        self.assertEqual(expected, l.array_aldeas)
Ejemplo n.º 16
0
    def test_computar_puntos_camino(self):
        p=Partida()
        l = Logica()
        l.array_caminos.append([(1,2), (2,2), (3,2)]) #camino de las fichas
        p.info_jugadores(2,"Adrian","rojo","Alberto","verde")

        fichaC1 = ArrayFichas().sacar_ficha(49) #tipo15
        fichaC2 = ArrayFichas().sacar_ficha(52) #tipo17
        fichaC3 = ArrayFichas().sacar_ficha(46) #tipo16

        p.colocar_seguidor(fichaC1,p.jugadores[1],7)

        p.tablero.insertar(fichaC1, 1, 2)
        p.tablero.insertar(fichaC2, 2, 2)
        p.tablero.insertar(fichaC3, 3, 2)
        expected=4
        puntos = l.computar_puntos_turno(p.tablero,(2,2),p.jugadores)
        self.assertEqual(p.jugadores[1].puntuacion,expected)
Ejemplo n.º 17
0
    def test_coloca_ficha_con_B2(self):

        p = Partida()
        l = Logica()
        l.array_caminos.append([(2,4)]) #camino de la fichaC1

        fichaC1 = ArrayFichas().sacar_ficha(66) #tipo18
        p.tablero.insertar(fichaC1, 2, 4)

        #mi_ficha = ArrayFichas().sacar_ficha(44) #tipo15
        mi_ficha = ArrayFichas().sacar_ficha(48) #tipo16
        p.tablero.insertar(mi_ficha, 2, 3)

        l.comprueba_ficha(p.tablero, (2,3), mi_ficha)

        expected = [[(2,3)], [(2,4), (2,3)], [(2,3)]]

        self.assertEqual(expected, l.array_caminos)
Ejemplo n.º 18
0
    def test_coloca_ficha_con_A_sinUnion(self):
        p = Partida()
        l = Logica()
        l.array_aldeas.append([(4,4), (4,5)])
        l.array_aldeas.append([(1,1), (2,1), (3,1)])

        ficha1 = ArrayFichas().sacar_ficha(69) #tipo19
        p.tablero.insertar(ficha1, 2, 4)

        ficha2 = ArrayFichas().sacar_ficha(70) #tipo19
        p.tablero.insertar(ficha2, 2, 2)

        mi_ficha = ArrayFichas().sacar_ficha(18) #tipo6
        p.tablero.insertar(mi_ficha, 2, 3) #coloco mi_ficha entre la ficha1 y la ficha2

        l.coloca_ficha_con_A(p.tablero, (2,3))

        expected = [(2,3)]

        self.assertEqual(expected, l.dame_aldea((2,3)))
Ejemplo n.º 19
0
    def insertar_ficha_tablero(self):
        t = Tablero()
        ficha = ArrayFichas().tipo1
        t.insertar(ficha, 2, 2)
        expected = """A0 A0 A0
A0 A1 A0
A0 A0 A0
A0 A0 A0
A0 A0 A0
"""
        self.assertEqual(expected, t.tablero[2][2].imprimir())
Ejemplo n.º 20
0
    def test_algoritmo_relleno(self):
        p = Partida()
        jugador = Jugador('Adrian', 'rojo')
        ficha1 = ArrayFichas().sacar_ficha(70)  #tipo19
        ficha2 = ArrayFichas().sacar_ficha(35)  #tipo11

        p.actualizar_zonas(ficha1, (6, 5))
        p.tablero.insertar(ficha1, 6, 5)

        p.actualizar_zonas(ficha2, (6, 6))
        p.colocar_seguidor(ficha2, jugador, 13)  #3 de arriba
        p.tablero.insertar(ficha2, 6, 6)
        p.algoritmo_relleno(6, 6)
        p.pintada_false()
        expected = """A2 A2 A2
P4 C1 P4
C1 C1 C1
Pr C1 Pr
Pr Pr Pr
"""

        self.assertEqual(expected, p.tablero.tablero[5][5].imprimir())
Ejemplo n.º 21
0
    def test_coloca_ficha_con_A_aldeasInconexas(self):
        p = Partida()
        l = Logica()
        l.array_aldeas.append([(2,2)]) #aldea de la ficha1
        l.array_aldeas.append([(2,4)]) #aldea de la ficha2
        l.array_aldeas.append([(1,1), (2,1), (3,1)])
        l.array_aldeas.append([(4,3)])

        ficha1 = ArrayFichas().sacar_ficha(1) #tipo2
        p.tablero.insertar(ficha1, 2, 2)

        ficha2 = ArrayFichas().sacar_ficha(2) #tipo2
        p.tablero.insertar(ficha2, 2, 4)

        mi_ficha = ArrayFichas().sacar_ficha(5) #tipo3
        p.tablero.insertar(mi_ficha, 2, 3) #coloco mi_ficha entre la ficha1 y la ficha2

        l.coloca_ficha_con_A(p.tablero, (2,3))

        expected = [(2,4), (2,3), (2,2)]

        self.assertEqual(expected, l.dame_aldea((2,3)))
Ejemplo n.º 22
0
    def test_coloca_ficha_con_B(self):
        todos = []
        p = Partida()
        l = Logica()

        #mi_ficha = ArrayFichas().sacar_ficha(44) #tipo15
        mi_ficha = ArrayFichas().sacar_ficha(48) #tipo16
        p.tablero.insertar(mi_ficha, 2, 3)

        l.comprueba_ficha(p.tablero, (2,3), mi_ficha)

        expected = [[(2,3)], [(2,3)], [(2,3)]]

        self.assertEqual(expected, l.array_caminos)
Ejemplo n.º 23
0
    def test_aldea_completada2(self):
        p=Partida();
        l = Logica()

        l.array_aldeas.append([(2,2), (2,3), (2,4)]) #aldea de las fichas

        fichaA1 = ArrayFichas().sacar_ficha(14) #tipo5
        fichaA2 = ArrayFichas().sacar_ficha(5) #tipo3
        fichaA3 = ArrayFichas().sacar_ficha(41) #tipo13
        fichaA3.girar()
        fichaA3.girar()
        fichaA3.girar()

        p.tablero.insertar(fichaA1, 2, 2)
        p.tablero.insertar(fichaA2, 2, 3)
        p.tablero.insertar(fichaA3, 2, 4)

        self.assertTrue(l.aldea_completada(p.tablero,l.dame_aldea((2,2))))
Ejemplo n.º 24
0
 def es_bifurcacion_y_aldea(self, ficha):
     return ArrayFichas().type(ficha) == 13
Ejemplo n.º 25
0
    def test_algoritmo_relleno2(self):
        p = Partida()
        jugador = Jugador('Adrian', 'rojo')
        jugador1 = Jugador('Alberto', 'verde')
        ficha1 = ArrayFichas().sacar_ficha(70)  # FICHA IGLESIA
        ficha2 = ArrayFichas().sacar_ficha(20)  # tipo7
        ficha3 = ArrayFichas().sacar_ficha(21)  # tipo7
        ficha4 = ArrayFichas().sacar_ficha(24)  #tipo8
        ficha5 = ArrayFichas().sacar_ficha(47)  #tipo16
        ficha6 = ArrayFichas().sacar_ficha(51)  #tipo18
        ficha7 = ArrayFichas().sacar_ficha(52)  #tipo18
        ficha8 = ArrayFichas().sacar_ficha(
            46)  # tipo 15 --- bifurcacion 4 caminos
        ficha9 = ArrayFichas().sacar_ficha(18)  # tipo 6

        ficha9.girar()
        ficha9.girar()

        ficha4.girar()
        ficha4.girar()
        ficha4.girar()

        ficha5.girar()
        ficha5.girar()

        ficha6.girar()

        ficha8.girar()
        ficha8.girar()

        ficha2.girar()
        ficha2.girar()

        ficha3.girar()

        p.tablero.insertar(ficha6, 5, 6)
        p.tablero.insertar(ficha8, 5, 4)
        p.tablero.insertar(ficha4, 5, 3)
        p.tablero.insertar(ficha7, 4, 4)
        p.tablero.insertar(ficha1, 6, 5)
        p.tablero.insertar(ficha2, 7, 5)

        p.actualizar_zonas(ficha3, (7, 6))
        p.colocar_seguidor(ficha3, jugador, 13)
        p.tablero.insertar(ficha3, 7, 6)
        p.algoritmo_relleno(7, 6)
        p.pintada_false()

        p.actualizar_zonas(ficha9, (4, 5))
        p.colocar_seguidor(ficha9, jugador1, 7)
        p.tablero.insertar(ficha9, 4, 5)
        p.algoritmo_relleno(4, 5)
        p.pintada_false()
        expected = """Av Av Av
P4 C1 P4
C1 C1 C1
Pr C1 Pr
Pr Pr Pr
"""
        self.assertEqual(expected, p.tablero.tablero[5][5].imprimir())
Ejemplo n.º 26
0
 def es_bifurcacion(self, ficha):
     return ArrayFichas().type(ficha) in [15, 16]
Ejemplo n.º 27
0
 def es_doble_limite_aldea(self, ficha):
     return ArrayFichas().type(ficha) in [5, 6]
Ejemplo n.º 28
0
 def es_limite_camino(self, ficha):
     return ArrayFichas().type(ficha) in [8, 10, 13, 15, 16]
Ejemplo n.º 29
0
 def test_dame_ficha(self):
     t = Tablero()
     ficha1 = ArrayFichas().sacar_ficha(21)  # tipo7
     t.insertar(ficha1, 2, 2)
     expected = ArrayFichas().type(ficha1)
     self.assertEqual(expected, ArrayFichas().type(t.dame_ficha((2, 2))))
Ejemplo n.º 30
0
 def contiene_camino_y_aldea(self, ficha):
     return ArrayFichas().type(ficha) in [8, 9, 11, 12, 14]