Ejemplo n.º 1
0
def ressusciteSnake(snake,joueur,jeu):
    """
    ressuscite snake apres collision
    """
    assert type(snake) is list
    assert type(joueur) is list

    for j in reversed(range(10)):        
        mMap.setCaseC(mJeu.getMap(jeu),snake[j][0],snake[j][1],"vide")
        snake.remove(snake[j])
    mJoueur.setSnakeJ(joueur,snake)
    return snake
Ejemplo n.º 2
0
def bonbon(xb,yb,x,y,snake,joueur,lcarte,hcarte,carte,numJ,depSnake):
    
        if x==xb and y==yb:
            mSnake.appSnake(snake)
            mGraphique.playSound() # Joue la musique quand on est sur le bonbon            
            mJoueur.setSnakeJ(joueur,snake)
            xb = random.randint(1,lcarte-1) # position au hasard de x
            yb = random.randint(1,hcarte-1)# position au hasard de y
            getEtatCase(carte,xb,yb)
            print('score de ', mJoueur.getNom(joueur), ' : ', len(snake))#affiche le score
            while carte[xb][yb] !=1: # Verification que l'on est sur la carte
                xb = random.randint(1,lcarte-1)
                yb = random.randint(1,hcarte-1)
        bonbon = setCaseC(carte,xb,yb,"bonbon")
        return snake,joueur,xb,yb
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
def deplacerSnake1(depSnake1,snake1,joueur):
    """
    deplacement du snake1
    """
    assert type (depSnake1) is list
    assert type (snake1) is list
    assert type(joueur) is list
    joueur1=joueur
    
    if (depSnake1[0]=="VD" and depSnake1[1]=="VH") or (depSnake1[0]=="VG" and depSnake1[1]=="VH") or (depSnake1[0]=="VH" and depSnake1[1]=="VH"):
        #Monter                                       
        for j in range(len(snake1)):

                if j==len(snake1)-1:
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                        setSnake(snake1,x1,y1+1,j)
                        x1,y1=getxSnake(snake1,j),getySnake(snake1,j)
                        
                else:
                        snake1[j]=snake1[j+1]
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                        
                mJoueur.setSnakeJ(joueur1,snake1)

    if (depSnake1[0]=="VD" and depSnake1[1]=="VB") or (depSnake1[0]=="VG" and depSnake1[1]=="VB") or (depSnake1[0]=="VB" and depSnake1[1]=="VB"):
        #Descendre                                        
        for j in range(len(snake1)):

                if j==len(snake1)-1:
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                        setSnake(snake1,x1,y1-1,j)
                        x1,y1=getxSnake(snake1,j),getySnake(snake1,j)
                        
                else:
                        snake1[j]=snake1[j+1]
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)

                mJoueur.setSnakeJ(joueur1,snake1)

    if (depSnake1[0]=="VH" and depSnake1[1]=="VG") or (depSnake1[0]=="VB" and depSnake1[1]== "VG") or (depSnake1[0]=="VG" and depSnake1[1]=="VG"):
        #Gauche                              
        for j in range(len(snake1)):

                if j==len(snake1)-1:
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                        setSnake(snake1,x1-1,y1,j)
                        x1,y1=getxSnake(snake1,j),getySnake(snake1,j)
                        
                else:
                        snake1[j]=snake1[j+1]
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                mJoueur.setSnakeJ(joueur1,snake1)

    if (depSnake1[0]==("VH") and depSnake1[1]== "VD") or (depSnake1[0]== "VB" and depSnake1[1]== "VD") or (depSnake1[0]== "" and depSnake1[1]== "VD" or (depSnake1[0]=="VD" and depSnake1[1]=="VD")):
        # Droite       
        for j in range(len(snake1)):

                if j==len(snake1)-1:
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)
                        
                        setSnake(snake1,x1+1,y1,j)
                        x1,y1=getxSnake(snake1,j),getySnake(snake1,j)
                        
                else:
                        snake1[j]=snake1[j+1]
                        x1=getxSnake(snake1,j)
                        y1=getySnake(snake1,j)

                mJoueur.setSnakeJ(joueur1,snake1)
    return depSnake1
Ejemplo n.º 5
0
def deplacerSnake2(depSnake2,snake2,joueur2):
    """
    deplacement du snake2
    """
    assert type (depSnake2) is list
    assert type (snake2) is list
    assert type (joueur2) is list
    
    if (depSnake2[0]=="VD" and depSnake2[1]=="VH") or (depSnake2[0]=="VG" and depSnake2[1]=="VH") or (depSnake2[0]=="VH" and depSnake2[1]=="VH"):
        #Monter                                       
        for j in range(len(snake2)):

                if j==len(snake2)-1:
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)
                        setSnake(snake2,x2,y2+1,j)
                        x,y=getxSnake(snake2,j),getySnake(snake2,j)
                        
                else:
                        snake2[j]=snake2[j+1]
                        x=getxSnake(snake2,j)
                        y=getySnake(snake2,j)
                        
                mJoueur.setSnakeJ(joueur2,snake2)

    if (depSnake2[0]=="VD" and depSnake2[1]=="VB") or (depSnake2[0]=="VG" and depSnake2[1]=="VB") or (depSnake2[0]=="VB" and depSnake2[1]=="VB"):
        #Descendre                                        
        for j in range(len(snake2)):

                if j==len(snake2)-1:
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)
                        setSnake(snake2,x2,y2-1,j)
                        x2,y2=getxSnake(snake2,j),getySnake(snake2,j)
                        
                else:
                        snake2[j]=snake2[j+1]
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)

                mJoueur.setSnakeJ(joueur2,snake2)

    if (depSnake2[0]=="VH" and depSnake2[1]=="VG") or (depSnake2[0]=="VB" and depSnake2[1]== "VG") or (depSnake2[0]=="VG" and depSnake2[1]=="VG"):
        #Gauche                              
        for j in range(len(snake2)):

                if j==len(snake2)-1:
                        x=getxSnake(snake2,j)
                        y=getySnake(snake2,j)
                        setSnake(snake2,x2-1,y2,j)
                        x2,y2=getxSnake(snake2,j),getySnake(snake2,j)
                        
                else:
                        snake2[j]=snake2[j+1]
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)
                mJoueur.setSnakeJ(joueur2,snake2)

    if (depSnake2[0]==("VH") and depSnake2[1]== "VD") or (depSnake2[0]== "VB" and depSnake2[1]== "VD") or (depSnake2[0]== "" and depSnake2[1]== "VD" or (depSnake2[0]=="VD" and depSnake2[1]=="VD")):
        # Droite       
        for j in range(len(snake2)):

                if j==len(snake2)-1:
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)
                        setSnake(snake2,x2+1,y2,j)
                        x2,y2=getxSnake(snake2,j),getySnake(snake2,j)
                        
                else:
                        snake2[j]=snake2[j+1]
                        x2=getxSnake(snake2,j)
                        y2=getySnake(snake2,j)

                mJoueur.setSnakeJ(joueur2,snake2)
    return depSnake2
Ejemplo n.º 6
0
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()