IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Réalisation du jeu 2048


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut Réalisation du jeu 2048
    Salut à tous,

    Bon l'intitulé est assez explicite vous le savez donc mon code et la transcription du jeu 2048 sous python

    Je viens vers vous car je bloque sur quelques fonctions de mon code

    Notamment celle-ci ou je ne vois pas pourquoi l'intervalle de randint passe à (0;3) alors que précédemment dans la fonction l’intervalle est de (0;4)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #Création des casses
    def buildBlock(grille): 
    # donnée : Une liste composée de 4 listes contenant des entiers (puissances de 2)
    # Résultat : Une grille composée de 4 listes contenant des entiers (puissances de 2). Il s'agit de la grille de départ  sauf qu'à une place aléatoire x,y (horizontal/vertical) on y a ajouté un 2 ou 4 
      dep=False
      for x in range(0,4):
        for y in range(0,4):
          if grille[x][y]==0: # on verifie s'il existe encore une valeur "0" # grille[x][y] caractérise la postion aléatoire
            dep=True
      if dep==True:          # Si il existe des "0" (soit une casse libre) dans la liste, on choisira aléatoirement une "place" dans les coordonnées disponible et on attribura une valeur 2 ou 4
        liste=[2,2,2,2,4]
        x = randint(0,3)
        y = randint(0,3) # instruction randint= Un chiffre (un entier) choisi aléatoirement
        while grille[y][x] != 0:
          x = randint(0,3) 
          y = randint(0,3)
        grille[y][x] = liste[randint(0,4)] # on crée un bloc de position et de valeur aléatoire, soit 2 soit 4 (toujours avec une probabilité de 4/5 pour 2)
      return(grille)
    Il s'agit de programmation python console et pas pygame ou Tkinter

    Le programme dans sa totalité en pj (.py en python 3.0)


    Merci d'avance
    Fichiers attachés Fichiers attachés
    • Type de fichier : py 2048.py (10,0 Ko, 973 affichages)

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Je viens vers vous car je bloque sur quelques fonctions de mon programme

    Notamment celle-ci ou je ne vois pas pourquoi l'intervalle de randint passe à (0;3) alors que précédemment dans la fonction l’intervalle est de (0;4)
    C'est le code que vous avez écrit, non?
    Et on peut supposer que vous avez regardé la documentation de randint avant de faire cela.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Oui le code !

    J'aurais peut être raté quelque chose à son sujet ?

    Je travaille en biome sur ce code et je n'ai pas réalisé cette fonction ci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Je travaille en biome sur ce code et je n'ai pas réalisé cette fonction ci
    Et pourquoi vous ne demandez pas à votre binome?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Car nous avons pas les moyens d'étudier le script en dehors des cours de programmation

    Et que l'évaluation à venir peut m'amener très certainement à être interrogé sur les fonctions qu'il à réalisés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par TeckiTo Voir le message
    Car nous avons pas les moyens d'étudier le script en dehors des cours de programmation

    Et que l'évaluation à venir peut m'amener très certainement à être interrogé sur les fonctions qu'il à réalisés
    Si vous ne pouvez pas causer à votre binome pourquoi auriez vous le droit d'aller à la pêche sur Internet?
    C'est votre programme, c'est sa contribution, à lui de vous expliquer ce que vous ne comprenez pas.
    Ou apprendre à utiliser la fonction help.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Il n'a pas de téléphone et accès à internet uniquement chez son père et cette semaine il n'y est pas...

    C'est rien de plus que de l'aide que je vous demande

    A quoi bon ces questions ?

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Il n'a pas de téléphone et accès à internet uniquement chez son père et cette semaine il n'y est pas...

    C'est rien de plus que de l'aide que je vous demande

    A quoi bon ces questions ?
    Parce qu'apprendre à se dépatouiller avec ce qu'on a sous la main fait aussi partie de l'apprentissage de la programmation.
    Si votre collègue n'est pas joignable, vous devriez savoir lancer la console et taper:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> import random
    >>> help(random.randint)
    Help on method randint in module random:
     
    randint(a, b) method of random.Random instance
        Return random integer in range [a, b], including both end points.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Je ne crois pas m'être présenté entend qu'expert si non je ne serais pas la

    Pour apprendre il faut chercher et de différents moyens c'est ce que j'essaye de faire

    Merci pour votre réponse !

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par TeckiTo Voir le message
    Je ne crois pas m'être présenté entend qu'expert si non je ne serais pas la

    Pour apprendre il faut chercher et de différents moyens c'est ce que j'essaye de faire
    Lancer la console Python et taper "help" est le b.a.ba.
    J'espère que vous aurez appris que çà existe et que vous vous en servirez avant de poser une autre question.
    note: le but est de vous apprendre à être un peu plus autonome. Ca vous permettra d'aller plus vite et d'être plus sûr de vous et éventuellement de poser des questions plus intéressantes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Oui merci j'ai pu utilisé l’instruction help qui m'a était bien utile pour un autre cas

    Mais voilà j'ai beau réfléchir dessus ... un autre cas m'est difficile à comprendre .. il s'agit de la fonction "droite/bas"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def DroiteBas(grille):
      for t in range (0,4): 
        for w in range (0,4):
           while len(grille[t])< 4: # la longueur de la grille depend du nombre de valeurs non nulles de la grille
               grille[t].insert(w,0) # insert la valeur 0 avec comme index w
      return(grille)
    Je ne vois pas d’où viennent et quel est l’intérêt des variable t et w , en quoi cette fonction fait elle mouvement ???

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Mais voilà j'ai beau réfléchir dessus ... un autre cas m'est difficile à comprendre .. il s'agit de la fonction "droite/bas"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def DroiteBas(grille):
      for t in range (0,4): 
        for w in range (0,4):
           while len(grille[t])< 4: # la longueur de la grille depend du nombre de valeurs non nulles de la grille
               grille[t].insert(w,0) # insert la valeur 0 avec comme index w
      return(grille)
    Cette fonction est supposée faire ce que votre collègue a documenté dans le programme complet que vous avez posté plus haut.
    Vous ne montrez que le comment il met à jour sa grille dans un cas particulier.
    Pourquoi a-t-il choisi de représenter les choses comme çà? La lecture diagonale du code laisse penser qu'il a passé pas mal de temps à documenter tout çà. A vous de le lire et d'essayer de comprendre ce qu'il raconte et de voir comment il le fait.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    En effet, ce que j'ai pu comprendre pour l'instant c'est que c'est deux fonctions "droite-bas" et "gauche-haut" permettent de "réarranger" la grille après déplacement (soit de rajouter des 0)
    N'est ce pas ?

    Mais la partie qui me pose problème réellement c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for w in range (3,-1,-1):
    Pourquoi c'est -1

    C'est la dernière grosse interrogation qui persiste après via la commande help tout me parait plus clair

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Mais la partie qui me pose problème réellement c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for w in range (3,-1,-1):
    Pourquoi c'est -1

    C'est la dernière grosse interrogation qui persiste après via la commande help tout me parait plus clair
    C'est la fonction "GaucheHaut". Votre collègue a commenté ce qu'elle fait. Le code, c'est juste "comment" çà fait ce qu'il dit. Il suffit de lire les commentaires en français...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Je vois bien de quoi il s'agit

    Je sais lire le français quand même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for w in range (3,-1,-1): # On lit la grille de droite a gauche pour pouvoir déplacer la casse le plus a gauche possible
    seulement ici la phrase m'aide pas vraiment à comprendre le pourquoi de ce -1,-1 ....

    Merci d'avance

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par TeckiTo Voir le message
    Je sais lire le français quand même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for w in range (3,-1,-1): # On lit la grille de droite a gauche pour pouvoir déplacer la casse le plus a gauche possible
    seulement ici la phrase m'aide pas vraiment à comprendre le pourquoi de ce -1,-1 ....
    "On lit la grille de droite a gauche" c'est du français.
    "for w in range (3,-1,-1)" est une façon de le faire en Python.
    Vous pouvez lancer la console, faire help range, jouer avec "for ... in range(...)" et voir ce que çà fait.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 19
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par TeckiTo Voir le message
    Je vois bien de quoi il s'agit

    Je sais lire le français quand même

    De plus ce sont mes commentaires en l'occurrence ici ! et c'est m'a fonction que j'ai développé sur cette partie précise: for w in range (3,-1,-1) avec un camarade de ma classe pas mon binôme, je l'ai réalisé moi à cette exception faite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for w in range (3,-1,-1): # On lit la grille de droite a gauche pour pouvoir déplacer la casse le plus a gauche possible
    seulement ici la phrase m'aide pas vraiment à comprendre le pourquoi de ce -1,-1 ....

    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réaliser un jeu en réseau
    Par Sieur_Blabla dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 25/12/2010, 13h40
  2. réaliser un jeu tetris
    Par zalalus dans le forum Débuter
    Réponses: 1
    Dernier message: 11/05/2009, 17h38
  3. Comment réaliser un jeu d'échec ?
    Par sali lala dans le forum C#
    Réponses: 17
    Dernier message: 06/02/2009, 22h22
  4. Réponses: 11
    Dernier message: 12/11/2007, 08h03
  5. [Calculatrice TI82] Réaliser un jeu
    Par Zenol dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 07/11/2005, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo