def drop(evt): global val, image, affich_compt canvas.coords(image, board[val].posX * h, board[val].posY * h) position_v[0], position_v[1] = None, None bornes[0], bornes[1] = None, None val, image = -2, 0 # on réinitialise toutes nos valeurs canvas.delete(affich_compt) texte = "Nombre de déplacements = " + str(compteur) affich_compt = canvas.create_text(4 * h, 7.75 * h, text=texte, font="Arial 16 italic", fill="white") Controler.create_matrice(L, board) # on met à jour la matrice avec les nouvelles coordonnées fin_du_jeu() # on vérifie que la voiture rouge ne puisse pas sortir du parking
def main(): """ Controler.train_vae( load_net_path=VAE_NET_PATH, save_net_path=VAE_NET_PATH, data_path=VAE_INPUT_PATH ) """ Controler.train_gru(vae_path=VAE_NET_PATH, load_gru_path=None, save_gru_path=GRU_NET_PATH, data_path=GRU_INPUT_PATH) """ img = MyImg.load_img(IMAGE_PATH)
def clic(evt): global val, image, compteur old[0], old[1] = evt.x, evt.y mat_posX = old[0] // h mat_posY = old[1] // h if L[mat_posY][mat_posX] != 0: compteur += 1 essai = L[mat_posY][mat_posX] val = Controler.trouver_tuple(board, essai) image = board[val].image position_v[0], position_v[1] = canvas.coords(image) bornes[0] = Controler.binf(board, L, val, board[val].orientation, mat_posX, mat_posY) bornes[1] = Controler.bsup(board, L, val, board[val].orientation, mat_posX, mat_posY)
def read_controlers_file(self, configuration): with open(self.controlers_file, "r") as file: for line in file: (nom, mac) = line.split(",", 2) controlador = Controler.Controler() controlador.nom = str(nom).strip() controlador.mac = str(mac).strip() configuration.controladors.append(controlador) if configuration.debug: print controlador.nom, controlador.mac
def fin_du_jeu(): # on regarde si le joueur a libéré la voir devant la voiture rouge global compteur borne_vr = Controler.bsup(board, L, val_rouge, board[val_rouge].orientation, board[val_rouge].posX, board[val_rouge].posY) if borne_vr == 7: # on supprime les événements car le joueur a terminé le jeu canvas.unbind('<B1-Motion>') canvas.unbind('<Button-1>') canvas.unbind('<Motion>') canvas.unbind('<ButtonRelease>') compteur += 1 canvas.delete(board[val_rouge].image) position_v[0], position_v[1] = board[val_rouge].posX * h, board[val_rouge].posY * h mouvement()
def initial(): global board, val_rouge, compteur, position_v, bornes, val, image, old canvas.delete("all") position_v = [None, None] bornes = [None, None] old = [None, None] val, image = -2, 0 board = None compteur = 0 for i in range(len(L)): for j in range(len(L)): L[i][j] = 0 board = Controler.init_matrice(matr, L, vr_image, v_lh, v_lv, c_lh, c_lv) for i in range(len(board)): if board[i].type == "vr": val_rouge = i jouer()
def run(self): pathDiretorioPersonagem = "personagem/" meuTempo = pygame.time.Clock() # som = pygame.mixer.Sound("sound/som_abertura.wav") # som.play() cenario = ChamarCenario() controler = Controler() perso_c, perso_l = 0, 20 try: pygame.display.set_caption('JOGO') temp = 0 while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() ''' erro no tempo de escolha, esta sempre pegando o valor 60 ''' while (temp <= 60) == True: #fonte = pygame.font.Font("fontes/font.ttf", 30) LINUX fonte = pygame.font.Font( pygame.font.get_default_font(), 30) print("PASSEI AQUI >>", temp) textoTempo = fonte.render(str(temp), True, [0, 0, 0]) self.tela.blit(textoTempo, [400, 5]) pygame.display.flip() if event.type == MOUSEBUTTONDOWN: ''' ERRO não está apagando o ultimo tempo, está gravando um em cima do outro ''' c, l = 750, 20 # Cria uma tupla com o valor das cordenadas do mause(x,y) curso = pygame.mouse.get_pos() # Representa as posição da imagem no menu if 310 <= curso[0] <= 410 and 255 <= curso[ 1] <= 405: exu_mirim = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(exu_mirim, (perso_c, perso_l)) exu_mirim_select = pygame.image.load( pathDiretorioPersonagem + "exu_mirim_select.png").convert() coluna = 310 linha = 250 self.tela.blit(exu_mirim_select, (coluna, linha)) ''' ERRO Não está colocando o lutador, está colocando o personagem grande e o persongem escolhido no cenário TALVEZ colocando Thead possa resolver o problema ERRO O botao enter(teclado) não está funcionando ''' if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) pygame.display.flip() cenario.chamarCenario('exu_mirim') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, '../lutador/exu_mirim_lutador.png') elif 435 <= curso[0] <= 535 and 255 <= curso[ 1] <= 405: lucifer = pygame.image.load( pathDiretorioPersonagem + "lucifer.png").convert() self.tela.blit(lucifer, (perso_c, perso_l)) lucifer_select = pygame.image.load( pathDiretorioPersonagem + "lucifer_select.png").convert() coluna = 430 linha = 250 self.tela.blit(lucifer_select, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('lucifer') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'lutador/lucifer_lutador.png') elif 550 <= curso[0] <= 650 and 285 <= curso[ 1] <= 405: maria_7_cat = pygame.image.load( pathDiretorioPersonagem + "maria_7_cat.png").convert() self.tela.blit(maria_7_cat, (perso_c, perso_l)) maria_pad_sete_cat = pygame.image.load( pathDiretorioPersonagem + "maria_7_cat_select.png").convert() coluna = 550 linha = 250 self.tela.blit(maria_pad_sete_cat, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('maria_7_cat') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'maria_7_cat_lutador.png') elif 250 <= curso[0] <= 350 and 425 <= curso[ 1] <= 575: exu_lucifer = pygame.image.load( pathDiretorioPersonagem + "exu_lucifer.png").convert() self.tela.blit(exu_lucifer, (perso_c, perso_l)) exu_lucifer_select = pygame.image.load( pathDiretorioPersonagem + "exu_lucifer_select.png").convert() coluna = 250 linha = 420 self.tela.blit(exu_lucifer_select, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('exu_lucifer') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'exu_lucifer_lutador.png') elif 370 <= curso[0] <= 470 and 425 <= curso[ 1] <= 575: ze_pilintra = pygame.image.load( pathDiretorioPersonagem + "ze_pilintra.png").convert() self.tela.blit(ze_pilintra, (perso_c, perso_l)) ze_pilintra_select = pygame.image.load( pathDiretorioPersonagem + "ze_pilintra_select.png").convert() coluna = 370 linha = 420 self.tela.blit(ze_pilintra_select, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('ze_pilintra') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'ze_pilintra_lutador.png') elif 490 <= curso[0] <= 590 and 425 <= curso[ 1] <= 575: perso_grande = pygame.image.load( pathDiretorioPersonagem + "exu_tata.png").convert() self.tela.blit(perso_grande, (perso_c, perso_l)) exu_caveira = pygame.image.load( pathDiretorioPersonagem + "exu_tata_select.png").convert() coluna = 490 linha = 420 self.tela.blit(exu_caveira, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('exu_tata') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'exu_tata_lutador.png') elif 610 <= curso[0] <= 710 and 425 <= curso[ 1] <= 575: perso_grande = pygame.image.load( pathDiretorioPersonagem + "maria_7_encruz.png").convert() self.tela.blit(perso_grande, (perso_c, perso_l)) maria_pad_sete_encru = pygame.image.load( pathDiretorioPersonagem + "maria_7_encruz_select.png").convert() coluna = 610 linha = 420 self.tela.blit(maria_pad_sete_encru, (coluna, linha)) if temp >= 60 or pygame.key == K_KP_ENTER: grande = pygame.image.load( pathDiretorioPersonagem + "exu_mirim.png").convert() self.tela.blit(grande, (c, l)) pygame.display.update() sleep(2) cenario.chamarCenario('maria_7_encruz') controler.controlerPersonagen( MinhaTela.x, MinhaTela.y, 'maria_7_encruz_lutador.png') break temp = 1 pygame.display.update() except Exception as e: print(e)
def resoudre_matrice(): global f, compteur deb = process_time() # début chrono f = [] deplac = Controler.pieces_deplacables(board, L, None) # on calcule les pièces déplaçables à partir de la matrice actuelle Controler.init(file_matrice, deplac) # on initialse notre file_matrice avec tous les mouvements possibles save = [] for b in range(len(board)): save.append(str(board[b].posX) + str( board[b].posY)) # on fait une sauvegarde de toutes les positions de la matrice de base print("Veuillez patienter...") bouleen = False while bouleen != True: # tant qu'on a pas trouvé de combinaison gagnante, on continue de parcourir file_matrie f = file_matrice[0] # on récupère le premier élément de file_matrice Controler.modif(board, f) # on change les positions des différents véhicules selon la combinaison de mouvements f Controler.create_matrice(L, board) # on met à jour la matrice deplac = Controler.pieces_deplacables(board, L, f[ len(f) - 1] // 10) # on calcule les pièces déplaçables à partir de cette nouvelle configuration del file_matrice[0] # on supprime f (car on ne veut pas l'analyser à niveau) for p in range(len(deplac)): # pour chaque pièce déplaçable z = f[:] z.append(deplac[p]) # on crée ue nouvelle combinaison composée de f et de notre nouveau mouvement ajout = Controler.ajout_possible(z, file_matrice) # on regarde si cette configuration existe déjà dans file_matrice if ajout: # si ce n'est pas le cas, on l'ajoute file_matrice.append(z) bouleen = (Controler.bsup(board, L, val_rouge, board[val_rouge].orientation, board[val_rouge].posX, board[ val_rouge].posY) == 7) # on regarde si la nouvelle configuration valide la condition de victoire for c in range(len(board)): # on remet les véhicules à leur position initiale board[c].setPosition(int(save[c][0]), int(save[c][1])) Controler.create_matrice(L, board) # on met à jour la matrice # for i in range(len(L)): # print(L[i]) fin = process_time() # fin chrono # quand on sort du while et qu'on a trouvé une solution print("Exécution en ", fin - deb, " s") print("La solution est :", f) Controler.modif(board, f) # on met à jour les positions des véhicules Controler.create_matrice(L, board) # on met à jour la matrice for d in range(len(f)): s = "on déplace le véhicule " + str(f[d] // 10) + " en position " + str(f[d] % 10) print(s) for b in range(len(board)): # on met à jour les placements des vahicules sur le canvas canvas.coords(board[b].image, board[b].posX * h, board[b].posY * h) compteur = compteur+len(f) fin_du_jeu() # on lance l'animation de victoire while len(file_matrice) != 0: # on réinitialise file_matrice à [] del file_matrice[0] f = None
def changer_map(): global matr matr = Controler.choisir_map() print(matr) initial()
def niv(nb): global matr matr = Controler.choix_niveau(nb) print(matr) initial()
def __init__(self,addr,serCom, CtrlP): self.addr = addr self.serCom = serCom self.controler = Controler.cControler(CtrlP) #Vmax = 180deg/s print ('motor ' + str(addr) + ' InitOK')