예제 #1
0
파일: mMap.py 프로젝트: theMonarK/Snake2p
def getEtatCase(carte,x,y):
    assert type(x) is int
    assert type(y) is int
    assert type(carte) is list
    etat=""
    x=carte[x][y]
    return mCase.getCase(x)
예제 #2
0
파일: mMain.py 프로젝트: theMonarK/Snake2p
def creerPartie(para):
        vitesse = mParametre.getVitesseJeu(para)
        formeCarte = mParametre.getForme(para)
        carte = []
        if formeCarte == "rectangulaire":
                coordonnes = mParametre.getTailleRect(para)
                carte = mMap.creerRectangulaire(coordonnes[0], coordonnes[1])
        elif formeCarte == "triangulaire":
                coordonnes = mParametre.getTailleTrian(para)
                carte = mMap.creerTriangulaire(coordonnes[0][0], coordonnes[0][1],coordonnes[1][0], coordonnes[1][1], coordonnes[2][0], coordonnes[2][1])
        elif formeCarte == "croix":
                carte = mMap.creerCroix(mParametre.getTailleCroix(para))
        #positionnement initiale des deux snakes et du bonbon
        lcarte, hcarte = mMap.getTailleEcran(carte)
        y1init = int(hcarte/2+1)
        y2init = int(hcarte/2-1)
        x1init,x2init=0,0
        
        xb = random.randint(1,lcarte-1)
        yb = random.randint(1,hcarte-1)
        mMap.getEtatCase(carte,xb,yb)
        while carte[xb][yb] !=1:
                xb = random.randint(1,lcarte-1)
                yb = random.randint(1,hcarte-1)

        for i in range(len(carte[0])-1) : #Recherche d'une case "vide" sur l'axe x
                xi=carte[i][y1init]     # Positionne le point sur la map par rapport a (x,y)
                etatxr = mCase.getCase(xi) # Recupere etat de la case
                if etatxr=="vide":
                        x1init=i
                        break # On arrete la boucle quand on a trouvé une case vide
        for j in range(len(carte[0])-1) : 
                xi=carte[j][y2init]
                etatxr = mCase.getCase(xi)
                if etatxr=="vide":
                        x2init=j
                        break # On arrete la boucle quand on a trouvé une case vide
           
        #creation des deux snakes initiaux de longeur 10
        snake1 = mSnake.creerSnakeInit(int(x1init), int(y1init))
        joueur1 = mJoueur.creerJoueur(mParametre.getCouleurJoueur(para,1), mParametre.getNomJoueur(para, 1), snake1)
        snake2 = mSnake.creerSnakeInit(int(x2init), int(y2init))
        joueur2 = mJoueur.creerJoueur(mParametre.getCouleurJoueur(para,2), mParametre.getNomJoueur(para, 2), snake2)
        bonbon = mMap.setCaseC(carte,xb,yb,"bonbon")

        jeu = mJeu.creer(vitesse, carte, joueur1, joueur2)
        return jeu,xb,yb,lcarte,hcarte
예제 #3
0
파일: mMap.py 프로젝트: theMonarK/Snake2p
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
예제 #4
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()
예제 #5
0
파일: mMap.py 프로젝트: theMonarK/Snake2p
def getCaseC(carte,x,y):
    assert type(x) is int
    assert type(y) is int
    assert type(carte) is list
    return mCase.getCase(carte[x][y])