def __init__(self): def joga(peca, xyz): tipo, cor = peca x, y, z = xyz #tipo(pos=xyz, size=(4, 4, 4), color= cor) #box(pos=xyz, size=(6, 6, 6), color= RBOW[z//VAO], opacity=0.2) self.angle = 0 self.sentido = None self.jogadas = { OESTE: self.oeste, NORTE: self.norte, LESTE: self.leste, SUL: self.sul, JOGA: self.joga } doc.bind('keypress', self.teclou) _gs = glow('main') cena = self.cena = canvas() cena.width = 1000 cena.height = 800 pecas = [(box, color.blue), (sphere, color.red)] * 4 * 4 * 2 self.casas = { (coluna, linha, camada): Casa(pos=(coluna, linha, camada)) for linha in CASAS for coluna in CASAS for camada in CASAS} shuffle(pecas) jogadas = [joga(pecas.pop(), (coluna*VAO, linha*VAO, camada*VAO)) for linha in CASAS for coluna in CASAS for camada in CASAS] self.joga()
def __init__(self): def joga(peca, xyz): tipo, cor = peca x, y, z = xyz #tipo(pos=xyz, size=(4, 4, 4), color= cor) #box(pos=xyz, size=(6, 6, 6), color= RBOW[z//VAO], opacity=0.2) self.angle = 0 self.sentido = None self.jogadas = { OESTE: self.oeste, NORTE: self.norte, LESTE: self.leste, SUL: self.sul, JOGA: self.joga } doc.bind('keypress', self.teclou) _gs = glow('main') cena = self.cena = canvas() cena.width = 1000 cena.height = 800 pecas = [(box, color.blue), (sphere, color.red)] * 4 * 4 * 2 self.casas = {(coluna, linha, camada): Casa(pos=(coluna, linha, camada)) for linha in CASAS for coluna in CASAS for camada in CASAS} shuffle(pecas) jogadas = [ joga(pecas.pop(), (coluna * VAO, linha * VAO, camada * VAO)) for linha in CASAS for coluna in CASAS for camada in CASAS ] self.joga()
def main(): def verifica_humano_ganha(): def casas_ganhadoras(tira): tipo_tira = [Casa.CASAS[casa].tipo_peca() for casa in tira if isinstance(casa, tuple)] return tipo_tira == [1, 1, 0] or tipo_tira == [0, 0, 1] or tipo_tira == [1, 0, 1] tiras = [tira for tira in TIRAS if casas_ganhadoras(tira)] # crie aqui um teste para saber se alguem venceu #print("testa_ganhou", tiras, casas_ganhadoras(tiras)) return tiras def verifica_robo_ganha(): def casas_ganhadoras(tira): tipo_tira = [Casa.CASAS[casa].tipo_peca() for casa in tira if isinstance(casa, tuple)] return tipo_tira == [1, 1, 0] or tipo_tira == [0, 0, 1] or tipo_tira == [1, 0, 1] tiras = [tira for tira in TIRAS if casas_ganhadoras(tira)] # crie aqui um teste para saber se alguem venceu #print("testa_ganhou", tiras, casas_ganhadoras(tiras)) return tiras def jogada(): casa_da_jogada = choice(TABULEIRO) #TABULEIRO[0] humano_ganha = verifica_humano_ganha() if humano_ganha: casas = humano_ganha[0] print ('humano_ganha:', humano_ganha, casas, "Jogue aqui:", casas[2]) #descobre qual casa está vazia casa_vazia = [Casa.CASAS[casa] for casa in casas if Casa.CASAS[casa].tipo_peca() ==0] print ('humano_ganha:', humano_ganha, casas, "Jogue aqui:", casa_vazia) casa_da_jogada = casa_vazia[0] #verifica_robo_ganha() TABULEIRO.remove(casa_da_jogada) casa_da_jogada.clicou() def clicou(event): cc = cena.mouse.pick().pos # pega a posição do objeto clicado pelo mouse casa_clicada = (cc.x, cc.y, cc.z) # cria uma tripla ordenada no espaço if casa_clicada in Casa.CASAS.keys(): # procura a tripla na coleção de casas casa_clicada = Casa.CASAS[casa_clicada] if casa_clicada in TABULEIRO: TABULEIRO.remove(casa_clicada) casa_clicada.clicou() # chama o clicou da casa escolhida jogada() _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 cena.bind("mousedown", clicou) TABULEIRO = [Casa(coluna, linha, camada) for coluna in TAM for linha in TAM for camada in TAM] jogada() return TABULEIRO
def main(): global TABULEIRO _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 print(unquote(doc["history"].text)) #TABULEIRO = [Casa(coluna, linha, camada) # for coluna in TAM for linha in TAM for camada in TAM] TABULEIRO = Tabuleiro(cena) cena.bind("mousedown", TABULEIRO.clica) TABULEIRO.jogada() return TABULEIRO
def main(): def clicou(event): cc = cena.mouse.pick().pos # pega a posição do objeto clicado pelo mouse casa_clicada = (cc.x, cc.y, cc.z) # cria uma tripla ordenada no espaço if casa_clicada in Casa.CASAS.keys(): # procura a tripla na coleção de casas casa_clicada = Casa.CASAS[casa_clicada] if casa_clicada in TABULEIRO: TABULEIRO.remove(casa_clicada) casa_clicada.clicou() # chama o clicou da casa escolhida _gs = glow("main") cena = canvas() cena.width = 400 cena.height = 400 cena.bind("mousedown", clicou) TABULEIRO = [Casa(coluna, linha, camada) for coluna in TAM for linha in TAM for camada in TAM] return TABULEIRO
def main(): def clicou(event): cc = cena.mouse.pick().pos # pega a posição do objeto clicado pelo mouse casa_clicada = (cc.x, cc.y, cc.z) # cria uma tripla ordenada no espaço if casa_clicada in Casa.CASAS.keys(): # procura a tripla na coleção de casas casa_clicada = Casa.CASAS[casa_clicada] if casa_clicada in TABULEIRO: TABULEIRO.remove(casa_clicada) casa_clicada.clicou() # chama o clicou da casa escolhida _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 cena.bind("mousedown", clicou) TABULEIRO = [Casa(coluna, linha, camada) for coluna in TAM for linha in TAM for camada in TAM] return TABULEIRO
def main(): def verifica_humano_ganha(): def casas_ganhadoras(tira): tipo_tira = [ Casa.CASAS[casa].tipo_peca() for casa in tira if isinstance(casa, tuple) ] return tipo_tira == [1, 1, 0] or tipo_tira == [ 0, 0, 1 ] or tipo_tira == [1, 0, 1] tiras = [tira for tira in TIRAS if casas_ganhadoras(tira) ] # crie aqui um teste para saber se alguem venceu #print("testa_ganhou", tiras, casas_ganhadoras(tiras)) return tiras def verifica_robo_ganha(): def casas_ganhadoras(tira): tipo_tira = [ Casa.CASAS[casa].tipo_peca() for casa in tira if isinstance(casa, tuple) ] return tipo_tira == [1, 1, 0] or tipo_tira == [ 0, 0, 1 ] or tipo_tira == [1, 0, 1] tiras = [tira for tira in TIRAS if casas_ganhadoras(tira) ] # crie aqui um teste para saber se alguem venceu #print("testa_ganhou", tiras, casas_ganhadoras(tiras)) return tiras def jogada(): casa_da_jogada = choice(TABULEIRO) #TABULEIRO[0] humano_ganha = verifica_humano_ganha() if humano_ganha: casas = humano_ganha[0] print('humano_ganha:', humano_ganha, casas, "Jogue aqui:", casas[2]) #descobre qual casa está vazia casa_vazia = [ Casa.CASAS[casa] for casa in casas if Casa.CASAS[casa].tipo_peca() == 0 ] print('humano_ganha:', humano_ganha, casas, "Jogue aqui:", casa_vazia) casa_da_jogada = casa_vazia[0] #verifica_robo_ganha() TABULEIRO.remove(casa_da_jogada) casa_da_jogada.clicou() def clicou(event): cc = cena.mouse.pick( ).pos # pega a posição do objeto clicado pelo mouse casa_clicada = (cc.x, cc.y, cc.z) # cria uma tripla ordenada no espaço if casa_clicada in Casa.CASAS.keys( ): # procura a tripla na coleção de casas casa_clicada = Casa.CASAS[casa_clicada] if casa_clicada in TABULEIRO: TABULEIRO.remove(casa_clicada) casa_clicada.clicou() # chama o clicou da casa escolhida jogada() _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 cena.bind("mousedown", clicou) TABULEIRO = [ Casa(coluna, linha, camada) for coluna in TAM for linha in TAM for camada in TAM ] jogada() return TABULEIRO
from glow import * _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 TAM = (-1, 0, 1) TABULEIRO = [] PECAS = [] print("oi") pecas = [box,sphere]*14 cores = [color.red,color.blue]*14 TABULEIRO = [box(pos=(coluna*3, linha*3,camada*3), size=(2, 2, 2), opacity=0.2) for coluna in TAM for linha in TAM for camada in TAM] cor = color.blue #peca, cor = pecas.pop() PECAS = [pecas.pop()(pos=(coluna*3, linha*3,camada*3), color=cores.pop(), size=(1, 1, 1), opacity=0.6) for coluna in TAM for linha in TAM for camada in TAM]
from glow import * glow('pydiv') scene = canvas() side = 4.0 thk = 0.3 s2 = 2*side - thk s3 = 2*side + thk wallR = box (pos=vec( side, 0, 0), size=vec(thk,s2,s3), color=color.red) wallL = box (pos=vec(-side, 0, 0), size=vec(thk,s2,s3), color=color.red) wallB = box (pos=vec(0, -side, 0), size=vec(s3,thk,s3), color=color.blue) wallT = box (pos=vec(0, side, 0), size=vec(s3,thk,s3), color=color.blue) wallBK = box(pos=vec(0, 0, -side), size=vec(s2,s2,thk), color=color.gray(0.7)) ball = sphere(color=color.green, size=vec(0.8,0.8,0.8)) ball.mass = 1.0 ball.p = vec(-0.15, -0.23, +0.27) #attach_trail(ball, pps=200, retain=100) side = side - thk*0.5 - ball.size.x/2 dt = 0.5 def move(): ball.pos+=ball.p * dt/ball.mass if not (-side < ball.pos.x < side): ball.p.x = -ball.p.x if not (-side < ball.pos.y < side): ball.p.y = -ball.p.y if not (-side < ball.pos.z < side): ball.p.z = -ball.p.z
from glow import * _gs = glow('pydiv') _scene = canvas() _box = box(color=color.red, pos=vec(1, 2, 3)) _arrow = arrow(color=color.yellow, pos=vec(3, 2, 1)) _cylinder = cylinder(color=color.blue, pos=vec(0, 0, 0)) _sphere = sphere(color=color.blue, pos=vec(7, 5, 3)) _counter = 0 def spin(): global _counter _counter += 1 _box.rotate(angle=0.01, axis=vec(1, 0, 0)) #_box.pos=vec(int((_counter%100)/10), 0, 0) _arrow.rotate(angle=0.01, axis=vec(0, 1, 0)) _cylinder.rotate(angle=0.01, axis=vec(0, 0, 1)) _sphere.pos = vec(0, (_counter % 100) / 10, 0) rate(100, spin) # make spin a callback spin() print("click on the <div id='pydiv'> tab to see the output")
from glow import * glow('pydiv') scene = canvas() side = 4.0 thk = 0.3 s2 = 2 * side - thk s3 = 2 * side + thk wallR = box(pos=vec(side, 0, 0), size=vec(thk, s2, s3), color=color.red) wallL = box(pos=vec(-side, 0, 0), size=vec(thk, s2, s3), color=color.red) wallB = box(pos=vec(0, -side, 0), size=vec(s3, thk, s3), color=color.blue) wallT = box(pos=vec(0, side, 0), size=vec(s3, thk, s3), color=color.blue) wallBK = box(pos=vec(0, 0, -side), size=vec(s2, s2, thk), color=color.gray(0.7)) ball = sphere(color=color.green, size=vec(0.8, 0.8, 0.8)) ball.mass = 1.0 ball.p = vec(-0.15, -0.23, +0.27) #attach_trail(ball, pps=200, retain=100) side = side - thk * 0.5 - ball.size.x / 2 dt = 0.5 def move(): ball.pos += ball.p * dt / ball.mass if not (-side < ball.pos.x < side): ball.p.x = -ball.p.x if not (-side < ball.pos.y < side):
__author__ = 'carlo' from glow import * _gs = glow('main') cena = canvas() cena.width = 400 cena.height = 400 TAM = (-1, 0, 1) TABULEIRO = [] PECAS = [] print("oi") pecas = [box, sphere] * 5 cores = [color.blue, color.red] * 5 TABULEIRO = [ box(pos=(coluna * 3, linha * 3, 0), size=(2, 2, 2), opacity=0.2) for coluna in TAM for linha in TAM ] cor = color.blue #peca, cor = pecas.pop() PECAS = [ pecas.pop()(pos=(coluna * 3, linha * 3, 0), color=cores.pop(), size=(1, 1, 1), opacity=0.6) for coluna in TAM for linha in TAM ]