Crack-wifi.com FORUM

LE FORUM DU SITE

Wifi, Backtrack, crack WEP et WPA...

Vous n'êtes pas identifié(e).  

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#1 31-03-2014 14:51:04

xReZo
Membre Actif
Inscription : 14-07-2013
Messages : 43

[PYTHON] Tableaux et boucle for

Bonjour à tous,

Je suis toujours en train de programmer un Tetris en Python pour le lycée, pour ceux qui m'avaient aidés sur mes précédents sujets. Je reviens vers vous avec une nouvelle question.

Tout d'abord, le fichier :

Tetris.rar

Bon, dans l'état, le jeu marche plutôt bien (les déplacement automatique seront ajoutés plus tard). Pour l'instant c'est manuel, avec les flèches du clavier.

Mon problème se situe des lignes 513 à 540 à peu près. J'explique : à chaque fois qu'une pièce arrive tout en bas, ou qu'elle en rencontre une autre, elle se bloque et la fonction "new_piece" est appelée, générant une nouvelle pièce. Au tout début de cette fonction, ligne 513, je lance une boucle "for" qui est censée, si elle n'est pas trop mal écrite, balayer mon tableau. J'aimerai qu'à chaque fois qu'il y ai un 1, la fonction qui me sert à générer mon carré soit appelée, que le carré soit créé et que ça continu.
Voici ce que j'ai écrit, avec les commentaires de chaque ligne de ce que je pense que c'est censé faire :

for k in range (cv): #Pour k allant de 0 au nombre de carreaux verticaux -1
        if sum(tab[k]) == ch : #Si la somme de ma ligne est égale au nombre de carreaux horizontaux(ligne complète)
            x,y = 31,18 #Les coordonnées "graphiques" se placent dans le coin en haut à gauche
            x2=x
            y2=y+e
            p,l = 0,0 #Les coordonnées "tableaux" se placent en haut à gauche 
            for j in range (k+1) : #Pour j allant de 0 à k+1
                tab[k-j]=tab[k-j-1].copy()  #On pète la ligne et on fait descendre les pièces du dessus à la ligne 
                tab[0]=ligne[0].copy() #d'en dessous

#### Les 3 lignes du haut, c'est ce qui se passe au niveau du tableau, et ça marche, c'est là que ça coince ####

            can.delete(ALL) #Supprime toute l'interface graphique et recrée le plateau de jeu
            can.create_rectangle(15,650,499,17,width=2, fill="#DADBDB", outline="#FFFFFF") #Zone de jeu
            can.create_rectangle(510,265,775,15,width=2, fill="#9B9B9B", outline="#FFFFFF")
            can.create_rectangle(510,505,775,280,width=2, fill="#9B9B9B", outline="#FFFFFF")
            can.create_rectangle(510,650,775,520,width=2, fill="#9B9B9B", outline="#FFFFFF")
            can.create_text(642, 50, text="Prochaine forme", font=("Alien Encounters", 20), fill="#FFFFFF")
            can.create_text(640, 320, text="Score", font=("Alien Encounters", 20), fill="#FFFFFF")
            can.create_text(640, 555, text="Credits", font=("Alien Encounters", 20), fill="#FFFFFF")
            for s in range (cv): #Balaiement du tableau 
                if tab[p][l] ==  1 : #Si y'a un 1, c'est qu'il doit y avoir un cube au niveau graphique
                    carre(x,y,x2,y2) #Donc on crée ce cube
                for d in range (ch) : #Balaiement du tableau de l'autre sens (tableau bi-dimensionnel)
                    if tab[p][l] ==  1 : #Si y'a un 1
                        carre(x,y,x2,y2) #On refait un carré (la couleur n'est pas importante pour le moment..)
                    x,y = x+e,y #On fait avancer nos coordonnées graphiques
                    p,l = p,l+1 #Et nos coordonnées tableaux
                x,y = x, y+e #Idem
                p,l = p+1, l #Idem 

Bien sur... ça ne marche pas ! je vous laisse le soin de découvrir la belle erreur que ça m'affiche...

Merci d'avance pour votre aide, ça fait 3 jours que je bloque et que j'avance plus ^^

Dernière modification par xReZo (31-03-2014 14:53:15)

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

#2 31-03-2014 15:39:16

kcdtv
Membre d'honneur
Lieu : Internacionaluña
Inscription : 31-03-2010
Messages : 4 246

Re : [PYTHON] Tableaux et boucle for

Tu n'as pas besoin en python de mettre des expressions de clôture dans les boucles?
Genre "if blabla fi" ?
Ou bien "for" blabla "fi"? ( demande un ignorant )
Je me réponds à moi même, on dirait pas....   ForLoop - Python
C'est bien python....  big_smile.
Ça n'a pas à l'air d'être du plus strict au niveau des syntaxes smile


J'aimerai qu'à chaque fois qu'il y ai un 1, la fonction qui me sert à générer mon carré soit appelée, que le carré soit créé et que ça continu.

Et si tu faisais plutôt en sorte que jusqu'à ce que la valeur ne soit pas un ( while ou untill ) le carré soit appelé et que ça continue?
Je n'en sais rien, en bash j'essaierais comme ça

while [ "$VAR" -eq "1" ]   # condition sur le fait que le résultat soit égal ou non à 1
  do
    "Func_créer cube"  # 
done

Je crois qu'ouvrir des for dans des for c'est très moyen dans quelque langage que ce soit, encore une fois je ne suis qu'un ignorant, mais c'est ce que j'ai cru comprendre en écoutant des gens qui savent et j'ai pu le constater sur des codes en bash et en C.... j'imagine qu'il en sera de même pour python.   

On espère avoir bientôt nôtre premier tetris made in  "ctrack-wifi.com", bonne continuation  smile

Hors Ligne

#3 31-03-2014 16:34:12

xReZo
Membre Actif
Inscription : 14-07-2013
Messages : 43

Re : [PYTHON] Tableaux et boucle for

Merci de m'avoir répondu ! Les expressions de clôtures dans les boucles, en python, c'est les " : " wink
Concernant ta proposition, je vais essayer avec un while voir ce que ça donne, merci pour la suggestion !

Quand il sera tout beau, la version finale version crack-wifi sera partagée ici, si le temps me le permet et les connaissances bien sur smile

Bonne journée, je vous tient au courant !

Hors Ligne

#4 05-04-2014 15:09:57

xReZo
Membre Actif
Inscription : 14-07-2013
Messages : 43

Re : [PYTHON] Tableaux et boucle for

Quelques nouvelles : ça fonctionne wink J'ai fini par trouver comment faire un balayage efficace du tableau...
Pour ceux que ça interesserai de tester :

Tetris

Si vous voyez des bugs n'héistez pas !

Touches :

Gauche et Droite --- Flèches du clavier
Rotation des pièces --- Touche flèche haut du clavier
Chute directe --- Touche espace

Hors Ligne

Annonce

Visitez la boutique Wifi-highpower.com, votre revendeur agr Alfa Network: du matriel Wifi slectionn, cartes Wifi USB Awus036h et Awus036nh, antennes omnis, yagis, panel, amplis wifi, accessoires...

Sujets similaires

Pied de page des forums


Le coin des bonnes affaires, achats informatiques:


|   Alfa 1000 mW AWUS036H   |    Linksys WRT54GL   |    Misco, informatique   |   
 |    Ebay   |    PC portables   |    PC Gamers & Tuning   |    Cles USB   |   
|   Disques durs externes 2 To   |   
|   Wifi-highpower.com   |   


Server Stats - [ Generated in 0.027 seconds ]   Forum Stat - [ Most users ever online on the forum was : 150 on 20-09-2009 17:06:59 ]