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 :

Traduction - Ch01 - Make Games with Python [Tutoriel]


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut Traduction - Ch01 - Make Games with Python
    Bonjour à tous,

    Je vous propose ICI, la traduction du premier chapitre du livre Make Games with Python.

    Les chapitres suivants suivront.

    Bonne lecture à tous.



    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Python
    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation des jeux
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    bof, rien que le 1er bout de code n'est pas bon ...
    plus correcte à mon avis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import pygame
    # pygame.init() pas utile
    # allonge le temps de fermeture de la fenetre
    # il vaut mieux initialiser seulement les modules utilisés
    window = pygame.display.set_mode((500, 400))
    pygame.draw.rect(window, (255, 0, 0), (0, 0, 50, 30))
    pygame.display.update()
    while pygame.event.wait().type != pygame.QUIT:
    	# attend la fermeture de la fenetre
    	# et par la même accasion lit la file d'événements
    	# qui sous windows empeche que "la fenetre ne repond pas"
    	pass
    pygame.quit() # necessaire sous windows

  3. #3
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Citation Envoyé par josmiley Voir le message
    bof, rien que le 1er bout de code n'est pas bon ...
    Bonjour Josmiley,

    Le premier code fonctionne parfaitement chez moi (Python 3). Il n'est cependant pas du tout optimisé, il est vrai.

    Le livre originel vise à apprendre le Python aux personnes n'y connaissant rien, à travers la création de jeux avec Pygame. Nous avons essayé de rester le plus fidèle à l'original lors de la traduction.

    Je te remercie pour ton code qui aidera certains
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Citation Envoyé par deusyss Voir le message
    Bonjour Josmiley,

    Le premier code fonctionne parfaitement chez moi (Python 3). Il n'est cependant pas du tout optimisé, il est vrai.

    Le livre originel vise à apprendre le Python aux personnes n'y connaissant rien, à travers la création de jeux avec Pygame. Nous avons essayé de rester le plus fidèle à l'original lors de la traduction.

    Je te remercie pour ton code qui aidera certains
    Bonjour deusyss,

    je sais bien que le code fonctionne, mais par "pas bon" j'entends deux choses, c'est juste un avis personnel:
    Je pense qu'apprendre aux débutants à écrire des codes qui fonctionnent plutôt que des codes "pythoniques" n'est pas une bonne approche.
    Le code donné ne fait pas ce qu'il est sensé faire, càd dessiner un rectangle coloré, mais accumule des rectangles colorés, ce qui n'est pas la même chose.

    voici deux codes qui illustrent la différence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pygame
    import pygame.gfxdraw
     
    pygame.init()
    window = pygame.display.set_mode((500, 400))
    while True:
    	pygame.gfxdraw.box(window, (0, 0, 50, 30), (255, 0, 0, 50))
    	pygame.display.update()
    	pygame.time.wait(500)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import pygame
    import pygame.gfxdraw
     
    pygame.init()
    window = pygame.display.set_mode((500, 400))
     
    pygame.gfxdraw.box(window, (0, 0, 50, 30), (255, 0, 0, 50))
    pygame.display.update()
     
    while True: pass

  5. #5
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Citation Envoyé par josmiley Voir le message
    Je pense qu'apprendre aux débutants à écrire des codes qui fonctionnent plutôt que des codes "pythoniques" n'est pas une bonne approche.
    Nous sommes bien d'accord sur cela. De même si le code ne fait pas tout à fait ce qu'il doit faire cela n'est pas le mieux.

    Cependant, même si à priori, nous pourrions changer le code lors de la traduction (par exemple, il a été envisagé de mettre en place les règles de nommage Python), il a été décidé, pour diverses raisons, de rester le plus fidèle possible au modèle originale.

    Mais puisqu'il semblerait que tu maîtrises à minima le sujet, je t'invite à poster une MAJ des codes si tu en ressent le besoin, afin de partager avec les autres membres. Ce serait super sympa
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  6. #6
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut traduction != traduction et revue
    Effectivement je ne comprends pas l'intérêt du dessin en boucle sans modification d’événement, c'est mal habituer le lecteur débutant, et déplacé posé vis-à-vis des autres optimisations proposées.
    C'est vrai que le dessein proposé est obtenir le plus rapidement possible du code fonctionnel, mais quelques lignes discutant de l'architecture, et remanier la boucle comme proposé ci-dessus, ce n'aurait pas été du luxe.
    D'ailleurs on parle d'optimisation mais on ne lit aucun moyen de l'observer (pour l'instant ?)
    J'attends de voir le reste du livre pour la critique définitive.
    Ceci dit une traduction c'est une traduction par une revue.
    Ca aurait été intéressant d'avoir un système d'annotation des livres (traduits ou pas) en ligne...
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  7. #7
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut Quel environnement ?
    C'est une manie assez fréquente, me semble-t-il chez Developpez.com de ne pas situer le contexte de travail
    Il est dit "Ouvrez une console". Bon. OK :

    pi@Rasp ~ $ ./jeu.py
    import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
    ./jeu.py: ligne3: Erreur de syntaxe près du symbole inattendu « window »
    ./jeu.py: ligne3: `window = pygame.display.set_mode((500, 400))'
    pi@Rasp ~ $

    En mode interactif, j'ai aussi (après avoir exécuté les lignes qui précèdent) :

    >>> window = pygame.display.set_mode((500, 400))
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    pygame.error: Unable to open a console terminal
    >>>

    Sérieusement pourrais-je avoir des détails sur l'environnement utilisé, je suis intéressé :-)

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Citation Envoyé par DMike92 Voir le message
    C'est une manie assez fréquente, me semble-t-il chez Developpez.com de ne pas situer le contexte de travail
    Il est dit "Ouvrez une console". Bon. OK :

    pi@Rasp ~ $ ./jeu.py
    import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
    ./jeu.py: ligne3: Erreur de syntaxe près du symbole inattendu « window »
    ./jeu.py: ligne3: `window = pygame.display.set_mode((500, 400))'
    pi@Rasp ~ $

    En mode interactif, j'ai aussi (après avoir exécuté les lignes qui précèdent) :

    >>> window = pygame.display.set_mode((500, 400))
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    pygame.error: Unable to open a console terminal
    >>>

    Sérieusement pourrais-je avoir des détails sur l'environnement utilisé, je suis intéressé :-)
    Tu es sûr d'avoir la bonne version de pygame ?

  9. #9
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut Environnement, quand tu nous tiens !
    Citation Envoyé par josmiley Voir le message
    Tu es sûr d'avoir la bonne version de pygame ?
    Encore une très bonne question. Y a-t-il des détail sur où et comment trouver pygame ? apt-get ? wget ? http... ?
    Et... quelle et la bonne version ?
    Et surtout : Windows ? Linux ? (Oui, bon là je fais exprès, mais c'est pour dire que tous ça est très secret ;-)
    Et enfin : Quel environnement graphique ?

  10. #10
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Citation Envoyé par DMike92 Voir le message
    Encore une très bonne question. Y a-t-il des détail sur où et comment trouver pygame ? apt-get ? wget ? http... ?
    Et... quelle et la bonne version ?
    Et surtout : Windows ? Linux ? (Oui, bon là je fais exprès, mais c'est pour dire que tous ça est très secret ;-)
    Et enfin : Quel environnement graphique ?
    Eh bien, le livre étant destiné à l'origine pour Raspberry Pi, je pense que la réponse est evidente Le livre a été écrit sur la version de raspbian en cours à l'époque.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  11. #11
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par deusyss Voir le message
    Eh bien, le livre étant destiné à l'origine pour Raspberry Pi, je pense que la réponse est evidente Le livre a été écrit sur la version de raspbian en cours à l'époque.
    OK deusyss, merci pour ta réponse. Donc Debian Jessie pour l'OS.
    Mais quelle commande pour obtenir pygame ? J'ai trouvé ceci : http://pygame.org/download.shtml Le lien aurait pu être donné si c'est le bon (il y en a d'autres).
    Et puis je doute qu'après avoir installé ceci ça résolve l'erreur que j'ai eu :
    import.im6: impossible de se connecter au serveur X `' @ error/import.c/ImportImageCommand/368.
    Quel serveur X ? Gnome ? J'ai pas.
    Tout ça, en fait, pour dire que les articles en disent toujours très peu sur l'environnement de base pour que ça fonctionne.

    Mais merci quand même :-)

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376

  13. #13
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par josmiley Voir le message
    Merci de ta réponse.
    J'avais l'impression que cet article concernait les débutants (dont je fais partie) et donc non je ne me suis pas lancé dans la compilation. D'autant que tout ce qui doit être installé dans le lien que tu me donnes risque de ne pas tenir sur mon pauv' Raspberry Pi !
    Quand à la commande hg elle est inconnue de mon système (commande Ubuntu peut-être ?)

    De toutes façon, je ne cherche pas à résoudre le problème, mon propos était juste de faire remarquer que sur ce site, l'absence des conditions d'environnement est très souvent oublié. Ça s'adresse à l'auteur à qui j'en profite pour dire que son article est très intéressant et bien expliqué (à part ce point) et je l'en remercie.

  14. #14
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Salut, l'ensemble des commandes hg sont des commandes du gestionnaire de version mercurial (symbole chimique du mercure: hg). Il faut installer l'outil pour que cela fonctionne. Ce n'est pas spécifique à Linux
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  15. #15
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par deusyss Voir le message
    Salut, l'ensemble des commandes hg sont des commandes du gestionnaire de version mercurial (symbole chimique du mercure: hg). Il faut installer l'outil pour que cela fonctionne. Ce n'est pas spécifique à Linux
    Merci :-)

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