예제 #1
0
 def maloc(self, imagem, x, y, cena):
     """ Cria uma maloca na arena do Kwarwp na posição definida.
     :param x: coluna em que o elemento será posicionado.
     :param y: linha em que o elemento será posicionado.
     :param cena: cena em que o elemento será posicionado.
     
     Cria uma vaga vazia e coloca o componente dentro dela.
     """
     coisa = Oca(imagem, x=0, y=0, cena=cena, taba=self)
     vaga = Vazio("", x=x, y=y, cena=cena, ocupante=coisa)
     return vaga
예제 #2
0
 def atora(self, imagem, x, y, cena):
     """ Cria uma tora na arena do Kwarwp na posição definida.
     :param x: coluna em que o elemento será posicionado.
     :param y: linha em que o elemento será posicionado.
     :param cena: cena em que o elemento será posicionado.
     
     Cria uma vaga vazia e coloca o componente dentro dela.
     """
     coisa = Tora(imagem, x=0, y=0, cena=cena, taba=self)
     vaga = Vazio("", x=x, y=y, cena=cena, ocupante=coisa, taba=self)
     coisa.vazio.vai = lambda *_: self.o_indio.larga()
     return vaga
예제 #3
0
 def indio(self, imagem, x, y, cena):
     """ Cria o personagem principal na arena do Kwarwp na posição definida.
     :param x: coluna em que o elemento será posicionado.
     :param y: linha em que o elemento será posicionado.
     :param cena: cena em que o elemento será posicionado.
     """
     self.o_indio = Indio(imagem, x=1, y=0, cena=cena, taba=self)
     """ O índio tem deslocamento zero, pois é relativo à vaga.
         O **x=1** serve para distinguir o indio de outros derivados.
     """
     self.o_indio.indio.vai = lambda *_: self.o_indio.pega()
     """o índio.vai é associado ao seu próprio metodo pega"""
     vaga = Vazio("", x=x, y=y, cena=cena, taba=self, ocupante=self.o_indio)
     return vaga
예제 #4
0
 def testa_chega_taba_indio(self):
     """ Chega no seu destino, tenta mover o índio, mas fica preso."""
     ftaba = self.t
     cena = self.k.cria()
     l = self.LADO
     indio = self.k.o_indio
     oca = Oca("", x=0, y=0, cena=cena, taba=ftaba)
     vaga = Vazio("", x=3*l, y=2*l, cena=cena, ocupante=oca)
     vazio = self.k.taba[(3,1)] = vaga
     self.assertIsInstance(vazio.ocupante, Oca, f"but vaga was {type(vazio.ocupante)}")
     pos = oca.posicao
     self.assertEquals((3, 1),  pos, f"but oca pos was {pos}")
     indio.anda()
     indio.anda()
     self.assertIsInstance(indio.vaga, Oca, f"but vaga was {type(indio.vaga)}")
     self.assertEquals(oca, indio.vaga, f"but vaga was {indio.vaga}")
     self.assertIn("chegou", ftaba.falou, f"but fala was {ftaba.falou}")
     indio.anda()
     pos = indio.posicao
     self.assertEquals((3, 1),  pos, f"but last pos was {pos}")
예제 #5
0
 def testa_prende_indio(self):
     """ Tenta mover o índio, mas fica preso."""
     ftaba = self.t
     cena = self.k.cria()
     l = self.LADO
     indio = self.k.o_indio
     piche = Piche("", x=0, y=0, cena=cena, taba=ftaba)
     vaga = Vazio("", x=3*l, y=2*l, cena=cena, ocupante=piche)
     vazio = self.k.taba[(3,1)] = vaga
     self.assertIsInstance(vazio.ocupante, Piche, f"but vaga was {type(vazio.ocupante)}")
     pos = piche.posicao
     self.assertEquals((3, 1),  pos, f"but piche pos was {pos}")
     indio.anda()
     indio.anda()
     self.assertIsInstance(indio.vaga, Piche, f"but vaga was {type(indio.vaga)}")
     self.assertEquals(piche, indio.vaga, f"but vaga was {indio.vaga}")
     indio.anda()
     pos = indio.posicao
     self.assertEquals((3, 1),  pos, f"but last pos was {pos}")
     self.assertIn("preso", ftaba.falou, f"but fala was {ftaba.falou}")
예제 #6
0
 def testa_larga_tora(self):
     """ Vai até a tora pega e larga."""
     cena = self.k.cria()
     self.k.o_indio.larga()
     l = self.LADO
     indio, tora = self._pega_tora()
     indio.larga()
     pos = tora.posicao
     self.assertEquals((1, 3),  pos, f"but tora pos was {pos}")
     coisa = Tora("", x=0, y=0, cena=cena, taba=self.k)
     vaga = Vazio("", x=0*l, y=3*l, cena=cena, ocupante=coisa)
     vazio = self.k.taba[(0,3)] = vaga
     indio.pega()
     pos = tora.posicao
     self.assertEquals((2, 3),  pos, f"but tora pos was {pos}")
     indio.anda()
     pos = indio.posicao
     self.assertEquals((1, 3),  pos, f"but indio andou pos was {pos}")
     pos = tora.posicao
     self.assertEquals((1, 3),  pos, f"but tora andou pos was {pos}")
     indio.anda()
     indio.larga()
     pos = tora.posicao
     self.assertEquals((1, 3),  pos, f"but tora not drop pos was {pos}")
예제 #7
0
 def vazio(self, imagem, x,y ,cena):
     vaga = Vazio(imagem, x=x, y=y, cena=cena, ocupante=self)
     return vaga
예제 #8
0
 def indio(self, imagem,x,y,cena):
     #self.o_indio = Indio(imagem, x=x, y=y, cena=cena) #era para estar funcionando este imagem mesmo?
     self.o_indio = Indio(imagem, x=1, y=2, cena=cena, taba=self)#estou precisando de um deslocamento mínimo. pq?
     """indio tem deslocamento zro pois é relativo à vaga"""
     vaga = Vazio("", x=x, y=y, cena=cena, ocupante = self.o_indio)
     return vaga