Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Jerem971
Auteur Sujet: 2048 en python

guigui404

Messages: 0

Bonjour à tous , j'ai commencé un 2048 en python , partie algorithme , ensuite sous tKinter , je suis bloqué aux déplacements , le bas marche , le haut non ... 
Je n'ai aucune idée du pourquoi 
Voici le code
import random
import numpy as np
def creeGrille(n,val):
    grille=[]
    interior=[]
    for i in range(n):
        for m in range(n):
            interior+=val,
        grille+=interior,
        interior=[]
    return(grille)
        
def affiche(grille):
    res=""
    for i in grille:
        for n in i:
            n=str(n)
            if len(n)==1:
                res+=n+"    "
            if len(n)==2:
                res+=n+"   "
            if len(n)==3:
                res+=n+"  "
            if len(n)==4:
                res+=n+" "
        print(res)
        print("")
        res=""
def appartient(x,grille):
    global test
    for i in grille:
        for n in i:
            test=bool(str(x)==str(n))
def gagnante(grille):
    appartient(2048,grille)
    if test:
        res="gagné"
    else:
        res="perdu"
    return(res)
def pleine(grille):
    appartient(0,grille)
    if test==False:
        print("pleine")
def max(g):
    res=0
    maxi=2
    for i in grille:
        for n in i:
            if int(n)>=maxi:
                res=n
            maxi=maxi**2
    return(res)
def lescases(grille,val):
    global cases
    cases=[]
    x=0
    y=0
    for i in grille:
        for n in i:
            if str(val)==str(n):
                cases+=[x,y],
            y+=1
        y=0
        x+=1
    return(cases)
def vides(grille):
    vides=lescases(grille,0)
    return(vides)
    
def init(n):
    global grille
    d1=random.choice([4,2])
    d2=random.choice([4,2])
    grille=creeGrille(n,0)
    grille=ajoutAlea(grille,d1)
    grille=ajoutAlea(grille,d2)
    coordonne(grille)
    return(grille)
def coordonne(grille):
    global coord
    x=0
    y=0
    coord=[]
    for i in grille:
        for n in i:
            coord+=[x,y],
            y+=1
        y=0
        x+=1
    return(coord)
def ajoutAlea(grille,val):
    coord=lescases(grille,0)
    coord=random.choice(coord)
    res=[]
    interior=[]
    x=0
    y=0
    for i in grille:
        for n in i:
            if x==coord[0] and y==coord[1]:
                interior+=(val),
            else:
                interior+=n,
            y+=1
        res+=interior,
        interior=[]
        y=0
        x+=1
    grille=res
    return(grille)
def bas(grille):
    global g
    bottom=[]
    for i in range(len(grille)):
        bottom+=0,
    grille=[bottom]+grille
    grille=np.array(grille)
    x=len(grille)-1
    for i in range(0,x):
        for n in range(x):
            if grille[i+1][n]==0:
                grille[i+1][n]=grille[n]
                grille[n]=0
            if grille[i+1][n]==grille[n]:
                grille[i+1][n]=grille[i+1][n]*2
                grille[n]=0
    g=np.delete(grille, 0, 0)
    d1=random.choice([4,2])
    g=ajoutAlea(g,d1)
    return(g)
                
    
    
Publicité

Bernard-ng

Messages: 28

ligne 108, pourquoi tu reviens à  y = 0 ?


Vous devez vous connecter ou créer un compte pour poster une réponse