def getEtatCase(carte,x,y): assert type(x) is int assert type(y) is int assert type(carte) is list etat="" x=carte[x][y] return mCase.getCase(x)
def creerPartie(para): vitesse = mParametre.getVitesseJeu(para) formeCarte = mParametre.getForme(para) carte = [] if formeCarte == "rectangulaire": coordonnes = mParametre.getTailleRect(para) carte = mMap.creerRectangulaire(coordonnes[0], coordonnes[1]) elif formeCarte == "triangulaire": coordonnes = mParametre.getTailleTrian(para) carte = mMap.creerTriangulaire(coordonnes[0][0], coordonnes[0][1],coordonnes[1][0], coordonnes[1][1], coordonnes[2][0], coordonnes[2][1]) elif formeCarte == "croix": carte = mMap.creerCroix(mParametre.getTailleCroix(para)) #positionnement initiale des deux snakes et du bonbon lcarte, hcarte = mMap.getTailleEcran(carte) y1init = int(hcarte/2+1) y2init = int(hcarte/2-1) x1init,x2init=0,0 xb = random.randint(1,lcarte-1) yb = random.randint(1,hcarte-1) mMap.getEtatCase(carte,xb,yb) while carte[xb][yb] !=1: xb = random.randint(1,lcarte-1) yb = random.randint(1,hcarte-1) for i in range(len(carte[0])-1) : #Recherche d'une case "vide" sur l'axe x xi=carte[i][y1init] # Positionne le point sur la map par rapport a (x,y) etatxr = mCase.getCase(xi) # Recupere etat de la case if etatxr=="vide": x1init=i break # On arrete la boucle quand on a trouvé une case vide for j in range(len(carte[0])-1) : xi=carte[j][y2init] etatxr = mCase.getCase(xi) if etatxr=="vide": x2init=j break # On arrete la boucle quand on a trouvé une case vide #creation des deux snakes initiaux de longeur 10 snake1 = mSnake.creerSnakeInit(int(x1init), int(y1init)) joueur1 = mJoueur.creerJoueur(mParametre.getCouleurJoueur(para,1), mParametre.getNomJoueur(para, 1), snake1) snake2 = mSnake.creerSnakeInit(int(x2init), int(y2init)) joueur2 = mJoueur.creerJoueur(mParametre.getCouleurJoueur(para,2), mParametre.getNomJoueur(para, 2), snake2) bonbon = mMap.setCaseC(carte,xb,yb,"bonbon") jeu = mJeu.creer(vitesse, carte, joueur1, joueur2) return jeu,xb,yb,lcarte,hcarte
def sortiCarte(snake,depSnake,joueur,carte,x,y): # "Capteurs" de sorti etatSortie = getEtatCase(carte,x,y) if etatSortie == "rien" : if depSnake[1]=="VD":# Sort par la droite for i in range(len(carte[1])) : #Recherche d'une case "vide" sur l'axe x dans le sens du snake xr=carte[i][y] etatxr = mCase.getCase(xr) if etatxr=="vide" : mSnake.setSnake(snake,i,y,len(snake)-1) # Replace le snake sur la carte mJoueur.setSnakeJ(joueur,snake) x,y=mSnake.getxSnake(snake,len(snake)-1),mSnake.getySnake(snake,len(snake)-1) break # on arrete la boucle if depSnake[1]=="VH":# Sort par le haut for i in range(len(carte)-1) : yr=carte[x][i] etatyr = mCase.getCase(yr) if etatyr=="vide" : mSnake.setSnake(snake,x,i,len(snake)-1) mJoueur.setSnakeJ(joueur,snake) x,y=mSnake.getxSnake(snake,len(snake)-1),mSnake.getySnake(snake,len(snake)-1) break if depSnake[1]=="VG":# Sort par la Gauche for i in reversed(range(len(carte)-1)) : xr=carte[i][y] etatxr = mCase.getCase(xr) if etatxr=="vide": mSnake.setSnake(snake,i,y,len(snake)-1) mJoueur.setSnakeJ(joueur,snake) x,y=mSnake.getxSnake(snake,len(snake)-1),mSnake.getySnake(snake,len(snake)-1) break if depSnake[1]=="VB":# Sort par le bas for i in reversed(range(len(carte[0])-1)) : yr=carte[x][i] etatyr = mCase.getCase(yr) if etatyr=="vide": mSnake.setSnake(snake,x,i,len(snake)-1) mJoueur.setSnakeJ(joueur,snake) x,y=mSnake.getxSnake(snake,len(snake)-1),mSnake.getySnake(snake,len(snake)-1) break return snake,joueur
def afficherMap(jeu, screen): carte = mJeu.getMap(jeu) caseVide = pygame.image.load("case_carte_vide.jpeg") caseRien = pygame.image.load("case_carte_rien.jpeg") caseBonbon = pygame.image.load("case_carte_bonbon.jpeg") couleurj1 = mJoueur.getCouleur(mJeu.getJoueur(jeu,1)) couleurj2 = mJoueur.getCouleur(mJeu.getJoueur(jeu,2)) if couleurj1=="bleu": caseSnake1 = pygame.image.load("corps_snake_bleu.jpg") elif couleurj1=="jaune": caseSnake1 = pygame.image.load("corps_snake_jaune.jpg") elif couleurj1=="noir": caseSnake1 = pygame.image.load("corps_snake_noir.jpg") elif couleurj1=="orange": caseSnake1 = pygame.image.load("corps_snake_orange.jpg") elif couleurj1=="rouge": caseSnake1 = pygame.image.load("corps_snake_rouge.jpg") elif couleurj1=="vert": caseSnake1 = pygame.image.load("corps_snake_vert.jpg") elif couleurj1=="violet": caseSnake1 = pygame.image.load("corps_snake_violet.jpg") if couleurj2=="bleu": caseSnake2 = pygame.image.load("corps_snake_bleu.jpg") elif couleurj2=="jaune": caseSnake2 = pygame.image.load("corps_snake_jaune.jpg") elif couleurj2=="noir": caseSnake2 = pygame.image.load("corps_snake_noir.jpg") elif couleurj2=="orange": caseSnake2 = pygame.image.load("corps_snake_orange.jpg") elif couleurj2=="rouge": caseSnake2 = pygame.image.load("corps_snake_rouge.jpg") elif couleurj2=="vert": caseSnake2 = pygame.image.load("corps_snake_vert.jpg") elif couleurj2=="violet": caseSnake2 = pygame.image.load("corps_snake_violet.jpg") hauteur = len(carte[0]) largeur = len(carte) for i in range(largeur): for j in range(hauteur): etat = mCase.getCase(carte[i][hauteur-j-1]) if etat == "vide": screen.blit(caseVide,(i*20,j*20)) elif etat == "rien": screen.blit(caseRien,(i*20,j*20)) elif etat == "bonbon": screen.blit(caseBonbon,(i*20,j*20)) elif etat == "snake1": screen.blit(caseSnake1,(i*20,j*20)) elif etat == "snake2": screen.blit(caseSnake2,(i*20,j*20)) pygame.display.flip()
def getCaseC(carte,x,y): assert type(x) is int assert type(y) is int assert type(carte) is list return mCase.getCase(carte[x][y])