示例#1
0
    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()
示例#2
0
    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()
示例#3
0
文件: velha.py 项目: jessvag/velha3d
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
文件: velha3d.py 项目: cetoli/draft
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
示例#8
0
文件: velha.py 项目: Cosmo65/velha3d
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
示例#9
0
文件: velha.py 项目: carol14/velha3d
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
示例#11
0
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 &lt;div id='pydiv'&gt; tab to see the output")
示例#12
0
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):
示例#13
0
文件: velha.py 项目: cetoli/draft
__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
]