コード例 #1
0
ファイル: mMain.py プロジェクト: theMonarK/Snake2p
def finPartie(run,parametres,joueur1,joueur2,collision,sperdant):
        # Obtention du joueur gagnant, fin du jeu et affichage du gagnant
        finPartie=mParametre.getFinJeu(parametres)
        if len(mJoueur.getSnake(joueur1))==finPartie:
                print(mJoueur.getNom(joueur1),"gagne")
                run=False
                pygame.time.delay(2000)
        if len(mJoueur.getSnake(joueur2))==finPartie:
                print(mJoueur.getNom(joueur2),"gagne")
                run=False
                pygame.time.delay(2000)
        if collision==True and sperdant=="snake1":
                print(mJoueur.getNom(joueur2),"gagne")
                run=False
                pygame.time.delay(2000)
        if collision==True and sperdant=="snake2":
                print(mJoueur.getNom(joueur1),"gagne")
                run=False
                pygame.time.delay(2000)
        return run
コード例 #2
0
ファイル: mMain.py プロジェクト: theMonarK/Snake2p
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
コード例 #3
0
ファイル: mMain.py プロジェクト: theMonarK/Snake2p
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()