CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Projet ISN : Tetris

cedthegeek
cedthegeek
Niveau 10
04 mars 2015 à 20:28:14

Bonjour,

Pour notre projet de fin d'année en ISN, nous avons choisi de faire un Tetris. J'ai donc commencé de mon côté à m'intéresser un peu aux différentes ressources dont nous aurions besoin, et j'ai donc trouvé deux éléments : Tkinter, et Pygame. Cependant, en lisant un peu la description de Pygame, je me demande si on ne peut pas utiliser QUE Pygame ?
Ensuite : pour créer le plateau du Tetris, j'ai une petite idée en tête : créer une Liste de booléens, False représentant une case vide. Mais du coup, je dois faire plusieurs listes à la suite séparés d'un saut de ligne :
[False, False, False]
[False, False, False]
[False, False, False]
Ou dois-je faire une espèce de liste de liste, de façon à avoir la même chose, mais le tout étant dans une liste :
[ [False, False, False],
[False, False, False],
[False, False, False] ]

Lagrangien
Lagrangien
Niveau 8
05 mars 2015 à 16:00:47

Salut,

Je connais mal Tkinter, mais oui tu peux tout à fait le faire entièrement avec PyGame. J'ai même envie de dire : PyGame est parfait pour ce genre de choses.
Que veux-tu dire par plusieurs listes à la suite séparées d'un saut de ligne?
Si tu fais une liste de listes, cela représentera bien une matrice, ça marchera très bien. Note que tu peux utiliser la librairie NumPy qui offre une gestion des matrices "à la matlab".

cedthegeek
cedthegeek
Niveau 10
05 mars 2015 à 20:19:44

En fait, je pensais à prendre plusieurs listes :
Liste1 = [False, False, False]
Liste2 = [False, True, False]
Liste3 = [True, True, True]

Puis, au niveau de l'affichage via PyGame, de faire en sorte que Liste1 représente la première ligne en haut du tableau, puis la Liste2 la 2e ligne etc...

J'ai en effet vu la librairie NumPy dans mes recherches, mais j'ai eu un doute pour savoir si oui ou non c'était exploitable pour le Tetris, mais du coup, je m'y intéresserais de plus prêt ^^

Lagrangien
Lagrangien
Niveau 8
06 mars 2015 à 09:18:35

Oui, travaille sur une matrice ou une liste de listes : la solution avec une nouvelle variable déclarée à la main pour chaque ligne n'est pas flexible, fastidieuse, difficile à déboguer... pas programmation quoi.

Après, tu fais comme tu veux, mais si c'est un tetris, tu vas devoir discerner les briques les unes des autres, donc une simple liste de booleens risque d'être limite (enfin, je dis ça mais je connais pas le reste du code). À ta place je créerais une classe Brique toute simple, qui contient le "pattern" de la brique, son orientation, sa couleur et sa position. Puis tu fais vivre ces briques dans ton espace 2D (avec une liste de briques), et tu itères sur elles pour les afficher, les bouger, etc... Mais ce n'est qu'une idée.

cedthegeek
cedthegeek
Niveau 10
07 mars 2015 à 09:28:13

D'accord, merci des conseils :)

J'avais juste "pensé" à mettre plusieurs listes, pour l'instant, aucun code n'est sorti, je ne fais que réfléchir en avance à "comment aborder le projet" ^^

J'envisage en effet de créer quelque chose (en premier temps, j'avais pensé à une liste de liste, l'élément 1 correspondant à tel bloc, mais c'est vrai que l'idée de la classe est possible également, j'y réfléchirai en détail), mais j'essaie d'abord de connaitre "la forme" de cet élément. Prendre des booléens, ou même des 0 et des 1 (qui, d'après un autre projet que j'avais vu, permet de faire plusieurs opérations, notamment les multiplications/divisions par deux pour déplacer le bloc, ainsi que des outils logiques type "ET NON" ) me parait une bonne idée, comme montré dans la parenthèse, ça simplifie les déplacements des blocs
Je réfléchirai à quel type d'éléments utiliser :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment