Example #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
Example #2
0
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()
Example #3
0
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
Example #4
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()