本文整理汇总了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__()
#.........这里部分代码省略.........