def affichageMap(carte,jeu): hauteur = len(carte[0]) largeur = len(carte) print ("joueur1", mJeu.getJoueur(jeu,1)) print ("joueur2", mJeu.getJoueur(jeu,2)) for a in reversed(range(hauteur)): MapNum=[] for b in range(largeur): MapNum.append(carte[b][a]) print(MapNum,'\n') l=[0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1]
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 jouer(depSnake,jeu,screen,numJ,carte): #Mise en mouvement du Snake1 snake=mJoueur.getSnake(mJeu.getJoueur(jeu,numJ)) joueur=mJeu.getJoueur(jeu,numJ) xd,yd=mSnake.getxSnake(snake,0),mSnake.getySnake(snake,0) mMap.setCaseC(mJeu.getMap(jeu),xd,yd,"vide")#Suprime état précedent du snake if numJ==1: depSnake=mSnake.deplacerSnake1(depSnake,snake,joueur) if numJ==2: depSnake=mSnake.deplacerSnake2(depSnake,snake,joueur) x=mSnake.getxSnake(snake,len(snake)-1) y=mSnake.getySnake(snake,len(snake)-1) #Delimitation du terrain snake,joueur1=mMap.sortiCarte(mJoueur.getSnake(mJeu.getJoueur(jeu,numJ)),depSnake,mJeu.getJoueur(jeu,numJ),carte,x,y) # Affichage et actualisation de la map mSnake.imprimerSnake(mJeu.getMap(jeu),mJoueur.getSnake(mJeu.getJoueur(jeu,numJ)),numJ) mGraphique.afficherMap(jeu, screen) # Affiche la map graphique # Décomenter pour afficher la carte non graphique et les joueurs #mMap.affichageMap(mJeu.getMap(jeu),jeu) x=mSnake.getxSnake(snake,len(snake)-1) y=mSnake.getySnake(snake,len(snake)-1) return depSnake,x,y,snake,joueur
def main(): choix=int(input("Charger une partie (0) ou Nouvelle partie (1) :\n")) if choix==1: # charger le fichier parametres = mChargerFichier.chargerFichier("defsnake2j.xml") # Construire la partie jeu,xb,yb,lcarte,hcarte = creerPartie(parametres) #Initialisation graphique et affichage carte carte = mJeu.getMap(jeu) hauteur, largeur = mMap.getTailleEcran(carte) screen = mGraphique.initGraphique(hauteur*20, largeur*20,"mMain.py") collision=False # Variable de collision sperdant="" # Snake perdant run = True # Variable principale depSnake1=["","VD"] #Variable de déplacement du Snake1 depSnake2=["","VD"] #Variable de déplacement du Snake1 if choix==0: parametres = mChargerFichier.chargerPara("sauvegarde") print(parametres) # Construire la partie jeu,xb,yb,lcarte,hcarte = creerPartie(parametres) snake1, snake2 = mParametre.getSnakes(parametres) mJoueur.setSnakeJ(mJeu.getJoueur(jeu,1),snake1) mJoueur.setSnakeJ(mJeu.getJoueur(jeu,2),snake2) #Initialisation graphique et affichage carte carte = mJeu.getMap(jeu) hauteur, largeur = mMap.getTailleEcran(carte) screen = mGraphique.initGraphique(hauteur*20, largeur*20,"mMain.py") collision=False sperdant="" run = True # Variable principale depSnake1, deSnake2 = mParametre.getDepSnakes(parametres) depSnake1=["","VD"] #Variable de déplacement du Snake1 depSnake2=["","VD"] #Variable de déplacement du Snake2 #Boucle principale while run: #déplace le snake 1 (fonctionne et passe par les bordures) depSnake1,x1,y1,snake1,joueur1=jouer(depSnake1,jeu,screen,1,carte) snake1,joueur1,xb,yb = mMap.bonbon(xb,yb,x1,y1,snake1,joueur1,lcarte,hcarte,carte,1,depSnake1) #déplace le snake 2 (fonctionne et passe par les bordures) depSnake2,x2,y2,snake2,joueur2=jouer(depSnake2,jeu,screen,2,carte) snake2,joueur2,xb,yb = mMap.bonbon(xb,yb,x2,y2,snake2,joueur2,lcarte,hcarte,carte,2,depSnake2) #verification que les deux snake ne se sont pas percutte collision,sperdant=mMap.collisionSnakes(snake1,x1,y1,x2,y2,snake2,joueur1,joueur2,jeu,1,collision,sperdant) collision,sperdant=mMap.collisionSnakes(snake1,x1,y1,x2,y2,snake2,joueur1,joueur2,jeu,2,collision,sperdant) #Verification que le snake ne s'est pas percutte lui meme collision,sperdant=mMap.collisionSnake(snake1,x1,y1,joueur1,jeu,1,collision,sperdant) collision,sperdant=mMap.collisionSnake(snake2,x2,y2,joueur2,jeu,2,collision,sperdant) #ecrit la fin de partie run = finPartie(run,parametres,joueur1,joueur2,collision,sperdant) #lecture clavier for event in pygame.event.get(): if event.type == KEYDOWN: # Acquisition de l'appuie sur une touche mSnake.clavierSnake1(depSnake1,event) # Touche clavier du snake1 mSnake.clavierSnake2(depSnake2,event) # Touche clavier du snake2 if event.key == K_p: #met en pause le jeu 5 secondes quand appuit sur p. pygame.time.delay(5000) if event.key == K_e: #sauvegarde des parametres mParametre.setSnakes(parametres, mJoueur.getSnake(mJeu.getJoueur(jeu,1)), mJoueur.getSnake(mJeu.getJoueur(jeu,2))) mParametre.setDepSnakes(parametres, depSnake1, depSnake2) mChargerFichier.sauverPara(parametres,"sauvegarde") run=False if event.type == QUIT: run=False vitesse=mParametre.getVitesseJeu(parametres) pygame.time.delay(vitesse) # Definit la vitesse du jeu (en milisec) #ferme la fenetre pygame pygame.time.delay(1000) pygame.quit()