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 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