def test_definir_posicao(self): largura = 800 # 800 x 800 # sendo tamanho do quadrado 100 # para a linha 0 e coluna 0, o x e y será 50 ou seja a peça será desenhada # a partir do centro do quadrado até o raio definido tamQuadrado = largura / 8 lin = 0 col = 0 p = Peca(lin, col, Cores.amareloClaro, tamQuadrado) p.converterPosicao() self.assertEqual((p.x, p.y), (50, 50)) lin = 0 col = 1 # soma 100 no X para a coluna 1 e assim sucessivamente p = Peca(lin, col, Cores.amareloClaro, tamQuadrado) p.converterPosicao() self.assertEqual((p.x, p.y), (150, 50)) lin = 0 col = 2 # soma 200 p = Peca(lin, col, Cores.amareloClaro, tamQuadrado) p.converterPosicao() self.assertEqual((p.x, p.y), (250, 50)) # para a linha segue a mesma lógica ocorrendo no Y lin = 1 # soma 100 no y col = 2 # soma 200 no x p = Peca(lin, col, Cores.amareloClaro, tamQuadrado) p.converterPosicao() self.assertEqual((p.x, p.y), (250, 150))
def __init__(self, director): super(Tabuleiro, self).__init__() self.director = director self.tabuleiro = [] self.offsetX = 100 self.offsetY = 100 lado = 32 #montagem da matriz inicial self.tabMatriz = [] for i in range(8): linha = [] for j in range(8): linha.append(0) self.tabMatriz.append(linha) self.tabMatriz[3][3] = 1 self.tabMatriz[3][4] = 2 self.tabMatriz[4][3] = 2 self.tabMatriz[4][4] = 1 ################################### #Batch que vai segurar todos os pecas self.spriteBatch = BatchNode() self.add(self.spriteBatch) for i in range(8): l = [] for j in range(8): if (self.tabMatriz[i][j] == 0): peca = Peca("vazio.png", (i * lado + lado / 2, j * lado + lado / 2)) elif (self.tabMatriz[i][j] == 1): peca = Peca("preto.png", (i * lado + lado / 2, j * lado + lado / 2)) elif (self.tabMatriz[i][j] == 2): peca = Peca("branco.png", (i * lado + lado / 2, j * lado + lado / 2)) l.append(peca) self.spriteBatch.add(peca) self.tabuleiro.append(l) self.spriteBatch.position = (self.offsetX, self.offsetY) self.teste = Sprite("grossini.png", (300, 200)) self.spriteBatch.add(self.teste) self.hud = GameHud() self.add(self.hud) for i in self.tabMatriz: print(i)
def posicionarPeca(self): for lin in range(self.conf.linhas): self.tabuleiro.append([]) for col in range(self.conf.colunas): if col % 2 == (lin + 1) % 2: if lin < 3: self.tabuleiro[lin].append( Peca(lin, col, self.conf.corPA, self.conf.getTamanhoQuadrado())) elif lin > 4: self.tabuleiro[lin].append( Peca(lin, col, self.conf.corPB, self.conf.getTamanhoQuadrado())) else: self.tabuleiro[lin].append(0) else: self.tabuleiro[lin].append(0)
def __init__( self, director, dificuldade ): super( GameLayer, self ).__init__() self.director = director self.tabuleiro = [] self.offsetX = director.get_window_size()[0]/3 self.offsetY = director.get_window_size()[1]/8 lado = 45 self.lado = lado self.dificuldade = dificuldade self.cpu = False self.prolog = Prolog() self.prolog.consult("reversi.pl") self.tabMatriz = list(self.prolog.query("novotab(X)"))[0]['X'] self.matriz = deepcopy(self.tabMatriz) pyglet.font.add_directory('.') self.jogadorAtivo = Label("Jogador: Player1", font_name = 'Blood Of Dracula', font_size = 22, x = 20, y = 350) self.add(self.jogadorAtivo) self.dif = Label("Dificuldade: " + self.dificuldade, font_name = 'Blood Of Dracula', font_size = 16, x = 20, y = 300) self.add(self.dif) self.p = list(self.prolog.query("winner(" + str(self.tabMatriz) + ", P0, P1, P2)"))[0] self.p1 = Label("P1: " + str(self.p['P1']) + self.dificuldade, font_name = 'Bloodsuckers', font_size = 26, x = 20, y = 200) self.p2 = Label("P1: " + str(self.p['P2']) + self.dificuldade, font_name = 'Bloodsuckers', font_size = 26, x = 20, y = 150) self.add(self.p1) self.add(self.p2) #Batch que vai segurar todos os pecas self.spriteBatch = BatchNode() self.add(self.spriteBatch) size = 8*self.lado for i in range(8): l = [] for j in range(8): peca = Peca(self.tabMatriz[i][j], (j*lado + lado/2, size - (i*lado + lado/2))) l.append(peca) self.spriteBatch.add(peca) self.tabuleiro.append(l) self.spriteBatch.add(Sprite("tabuleiro.png", (self.tabuleiro[4][4].position[0] - lado/2, self.tabuleiro[4][4].position[1] + lado/2) , 0, 1, 32), 0) self.spriteBatch.position = (self.offsetX, self.offsetY) self.spriteBatch.scale = 1.0 self.hud = GameHud() self.add(self.hud) self.schedule(self.gameLoop)
def test_mover_e_calcular(self): largura = 800 # 800 x 800 tamQuadrado = largura / 8 # 100 lin = 1 col = 2 p = Peca(lin, col, Cores.amareloClaro, tamQuadrado) p.mover(2, 1) # novo X e Y calculado self.assertEqual((p.x, p.y), (150, 250)) self.assertEqual((p.lin, p.col), (2, 1))
def criar_peca(nome, nome_arquivo): peca = Peca(nome) print(peca.toString() + " foi criado") acesso = "./Store/Listas/" + nome_arquivo + ".txt" # Aproveitando esse trecho para salvar a string num txt: f = open(acesso, "a+") f.write(peca.toString() + "\n") f.close() return peca #O QUE O USUARIO ENTROU
class Casa: peca = Peca() largura = 83 altura = 83 Cor = None WHITE = 1 BLACK = 2 NONE = 0 valor = 0 def __init__(self, valor = 0): self.valor = valor def setPeca(self,peca): self.peca = peca def getPeca(self): return self.peca def getAltura(self): return self.altura def getLargura(self): return self.largura def setCor(self,cor): self.Cor = cor def getCor(self): return self.Cor def setValor(self, valor): self.valor = valor def getValor(self): return self.valor def getValorInverso(self): _valor = 0 if self.valor == self.WHITE: _valor = self.BLACK elif self.valor == self.BLACK: _valor = self.WHITE return _valor