当前位置: 首页>>代码示例>>Python>>正文


Python World.ca方法代码示例

本文整理汇总了Python中World.ca方法的典型用法代码示例。如果您正苦于以下问题:Python World.ca方法的具体用法?Python World.ca怎么用?Python World.ca使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在World的用法示例。


在下文中一共展示了World.ca方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Modo_Grafico

# 需要导入模块: import World [as 别名]
# 或者: from World import ca [as 别名]
class Modo_Grafico(Modo_Base):
    """Implementacao do modo grafico do jogo, usando swampy"""

    def __init__(self, modo, x, y, j_humano):
        Modo_Base.__init__(self,modo,x,y,j_humano)
        self.bool_fim_de_jogo = False

        self.cls_world = World()
        #self.canvas = self.cls_world.ca(width=((2*self.int_colunas)*100 -(self.int_colunas - 2)*100)/2, height=((2*self.int_linhas)*100 -(self.int_linhas- 2)*100)/2, background='white')
        self.canvas = self.cls_world.ca(width=(60*self.int_colunas-1)+50, height=(60*self.int_linhas-1)+50, background='white')
        self.canvas.transforms[0].shift = [0+50,self.canvas.height-50]
        self.canvas.bind('<Button-1>',self.mouse_event_clicked)
        self.canvas.bind('<Motion>',self.mouse_move)

       # self.canvas_size = ((2*self.int_colunas)*100 -(self.int_colunas - 2)*100)/2
        self.dot_distance = 60
        self.rectangulos = []
        self.preparar_tabuleiro()
    def mouse_move(self,event):
        print event.x - 50, " ", (event.y - self.canvas.height) * -1 - 50
    def actualizar(self):

        wait_for_user()
        return False
    #verifica o tabuleiro e retorna o nr de quadrados completos
    #pelo jogador
    def actualizar_tabuleiro(self, jogador):
        #verificar se o jogador completou quadrados
        #3x3 -> 0 1 2 x 0 1 2
        bool_completou_quadrados = 0
        for i in range(self.int_linhas-1):
            for j in range(self.int_colunas-1):
                if (self.dict_tabuleiro.has_key(((j,i),(j+1,i))) and
                    self.dict_tabuleiro.has_key(((j,i),(j,i+1))) and
                    self.dict_tabuleiro.has_key(((j,i+1),(j+1,i+1))) and
                    self.dict_tabuleiro.has_key(((j+1,i),(j+1,i+1)))):
                    if( not self.list_quadrados[j][i].str_jogador):
                        self.list_quadrados[j][i].str_jogador = jogador.str_jogador
                        self.list_quadrados[j][i].str_color = jogador.str_cor_jogador
                        bool_completou_quadrados += 1
        return bool_completou_quadrados

    #event do rato ao clicar
    def mouse_event_clicked(self, event):
        
        if(not self.bool_fim_de_jogo):
            #desenha os pontos
            self.canvas.clear()
            for i in range(self.int_linhas):
                for k in range(self.int_colunas):
                    self.desenhar_rectangulo(k*self.dot_distance ,i*self.dot_distance,10,10, fill = "black")


            #desenha os quadrados
            for i in range( self.int_linhas-1):
                for j in range(self.int_colunas-1):
                    
                    self.desenhar_rectangulo( self.list_quadrados[j][i].int_x , self.list_quadrados[j][i].int_y, self.list_quadrados[j][i].int_width, self.list_quadrados[j][i].int_height, fill = self.list_quadrados[j][i].str_color)
           
            #desenha os rectangulos
            for i in range(len(self.rectangulos)):
                #detectar colisao
                if(self.rectangulos[i].colide( event.x - 50, (event.y - self.canvas.height) * -1 - 50)):
                    #colisao detectada, adicionar jogada se possivel e verificar o tabuleiro etc como no modo texto
                    x1, y1, x2, y2 = self.rectangulos[i].tupple_coordenadas
                    bool_validade, str_erro = self.__set_coordenadas__(x1,y1,x2,y2)
                    str_jog = self.list_jogadores[self.int_jogador_actual].str_jogador
                    if(bool_validade):
                            #mudar a cor do rectangulo
                            self.rectangulos[i].str_color = self.list_jogadores[self.int_jogador_actual].str_cor_jogador
                            self.desenhar_rectangulo(self.rectangulos[i].int_x ,self.rectangulos[i].int_y,self.rectangulos[i].int_width,self.rectangulos[i].int_height, fill = self.rectangulos[i].str_color)
                            #verifica o estado do tabuleiro e atribui novos quadrados 
                            #se o jogador os completou com a nova jogada.
                            #verifica tambem se o tabuleiro foi completado e retorna o 
                            #vencedor.

                            int_quadrados = self.actualizar_tabuleiro(self.list_jogadores[self.int_jogador_actual])
                 
                            int_estado, int_flag, str_vencedor = \
                                self.obter_estado_tabuleiro()

                            #desenha os quadrados -.- com as alteracoes
                            for i in range( self.int_linhas-1):
                                for j in range(self.int_colunas-1):
                    
                                    self.desenhar_rectangulo( self.list_quadrados[j][i].int_x , self.list_quadrados[j][i].int_y, self.list_quadrados[j][i].int_width, self.list_quadrados[j][i].int_height, fill = self.list_quadrados[j][i].str_color)
           
                            if(int_estado == ESTADO_TABULEIRO_GAMEOVER):
                                if(int_flag == FLAG_EMPATE):
                                    print "Fim do jogo, os jogadores empataram. Feche o tabuleiro para voltar ao menu principal"
                                elif(int_flag == FLAG_VENCEDOR):
                                    print "Fim do jogo. O vencedor foi o jogador ", \
                                        str_vencedor + " Feche o tabuleiro para voltar ao menu principal"
                                self.bool_fim_de_jogo = True
                            else:
                                #se o jogador completou quadrados, ganha uma nova jogada
                                if(int_quadrados):
                                    print "Jogada extra, garantida ao jogador %s" % str_jog
                                else:
                                    self.__obter_jogador_seguinte__()
#.........这里部分代码省略.........
开发者ID:Hiperzone,项目名称:University,代码行数:103,代码来源:modo_jogo.py


注:本文中的World.ca方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。