Déroulement réel des cours

La « pensée » du Disadorn, d'an 20 a viz Ebrel 2019 , 2h13m00s :
Dépourvue d'âme, la femme est dans l'incapacité de s'élever vers Dieu. En revanche elle est en général pourvue d'un escabeau qui lui permet de s'élever vers le plafond pour faire les carreaux. C'est tout ce qu'on lui demande.
  -- Pierre Desproges.
1 : semaine du lendi 19 janbier 2009
 Cours n°1 (Cumul=2h) : [Voir le CM n°1]
2 : semaine du lendi 26 janbier 2009
 TD n°1 (Cumul=2h) :
But du cours
Réalisation d'un projet de programmation en python.
Ce sera un démineur. Vous pouvez télécharger la version compilée du « but à atteindre ». C'est une version compilée, donc vous n'avez pas accès au code source. Dommage, impossible de tricher...
Pour l'essayer :
python demineur.pyc
Ce programme ne fonctionnera sans doute pas sous Windows.
Quelques exercices du chapitre 4 :
  • Exercice 2 : Écrire un programme qui affiche en alternance au même endroit sur l'écran l'une des deux phrases « Il marche » et « Il ne marche plus ». Le passage de l'un à l'autre se fera par l'appui sur la touche d'espacement, la sortie du programme se fera proprement par l'appui sur la touche « q ».
    ex2chp4.py [sans numéros de lignes]
    1. import curses
    2.  
    3. ecran = curses.initscr()
    4. curses.noecho()
    5. c = ''
    6. etat = True
    7.  
    8. while c<>ord('q') :
    9.     ecran.clear()
    10.     if etat :
    11.         ecran.addstr(10,10,'il marche')
    12.     else :
    13.         ecran.addstr(10,10,'il ne marche plus')
    14.     c = ecran.getch()
    15.     if c == ord(' ') :
    16.         etat = not etat
    17.  
    18. curses.echo()
    19. curses.endwin()
Démineur...
  • Remarques préliminaires :
    • Dans un premier temps on va créer des fonctions, qu'on réunira plus tard pour réaliser le projet final.
    • Il faudra au maximum paramétrer le programme.
  • Écrire un programme qui déplace une étoile à l'écran en la contrôlant au clavier : les touches 4, 8, 6 et 2 du pavé numérique pour déplacer, la touche q pour sortir du programme. Dans cette première version on ne vérifiera pas que l'étole reste dans l'écran. Si le programme plante, tant pis.
    etoile.py [sans numéros de lignes]
    1. # -*- coding: utf-8 -*-
    2. import curses
    3. # initialisations
    4. ecran=curses.initscr()  # création de l'écran "graphique"
    5. curses.curs_set(False)  # pas d'affichage du curseur
    6.  
    7. ligne=1      # position verticale du curseur
    8. colonne=1    # position horizontale du curseur
    9. unetouche=0  # pour entrer dans la boucle
    10.  
    11. while unetouche!=ord("q") :
    12.   if unetouche==ord("6") :    # à droite
    13.     colonne+=1
    14.   elif unetouche==ord("4") :  # à gauche
    15.     colonne-=1
    16.   elif unetouche==ord("8") :  # en haut
    17.     ligne-=1
    18.   elif unetouche==ord("2") :  # en bas
    19.     ligne+=1
    20.   ecran.clear()                   # effacer l'écran
    21.   ecran.addch(ligne,colonne,"*")  # positionner l'étoile
    22.   unetouche=ecran.getch()         # attente d'une frappe clavier
    23.  
    24. curses.endwin()      # revenir à la console
  • Même chose en empêchant de sortir de l'écran.
    etoile2.py [sans numéros de lignes]
    1. # -*- coding: utf-8 -*-
    2. import curses
    3. # initialisations
    4. ecran=curses.initscr()  # création de l'écran "graphique"
    5. curses.curs_set(False)  # pas d'affichage du curseur
    6.  
    7. (maxl,maxc)=ecran.getmaxyx() # dimensions de l'écran
    8. ligne=1                      # position verticale initiale du curseur
    9. colonne=1                    # position horizontale initiale du curseur
    10. unetouche=0                  # pour pouvoir entrer dans la boucle
    11.  
    12. while unetouche!=ord("q") :  # tant qu'on n'a pas appuyé sur la touche Q
    13.   if (unetouche==ord("6")) and (colonne<maxc-2) :  # à droite
    14.     colonne+=1
    15.   elif (unetouche==ord("4")) and (colonne>0)  :    # à gauche
    16.     colonne-=1
    17.   elif (unetouche==ord("8")) and (ligne>0) :       # en haut
    18.     ligne-=1
    19.   elif (unetouche==ord("2")) and (ligne<maxl-2) :  # en bas
    20.     ligne+=1
    21.   ecran.clear()                   # effacer l'écran
    22.   ecran.addch(ligne,colonne,"*")  # positionner l'étoile
    23.   unetouche=ecran.getch()         # attente d'une frappe clavier
    24.  
    25. curses.endwin()      # revenir à la console
  • Même chose en utilisant les touches de déplacement de curseur.
    etoile3.py [sans numéros de lignes]
    1. # -*- coding: utf-8 -*-
    2. import curses
    3. # initialisations
    4. ecran=curses.initscr()  # création de l'écran "graphique"
    5. ecran.keypad(True)      # codage des touches de fonctions en 1 octet
    6. curses.curs_set(False)  # pas d'affichage du curseur
    7.  
    8. (maxl,maxc)=ecran.getmaxyx() # dimensions de l'écran
    9. ligne=1                      # position verticale initiale du curseur
    10. colonne=1                    # position horizontale initiale du curseur
    11. unetouche=0                  # pour pouvoir entrer dans la boucle
    12.  
    13. while unetouche!=ord("q") :  # tant qu'on n'a pas appuyé sur la touche Q
    14.   if (unetouche==curses.KEY_RIGHT) and (colonne<maxc-2) : # à droite
    15.     colonne+=1
    16.   elif (unetouche==curses.KEY_LEFT) and (colonne>0) :     # à gauche
    17.     colonne-=1
    18.   elif (unetouche==curses.KEY_UP) and (ligne>0) :         # en haut
    19.     ligne-=1
    20.   elif (unetouche==curses.KEY_DOWN) and (ligne<maxl-2) :  # en bas
    21.     ligne+=1
    22.   ecran.clear()                   # effacer l'écran
    23.   ecran.addch(ligne,colonne,"*")  # positionner l'étoile
    24.   unetouche=ecran.getch()         # attente d'une frappe clavier
    25.  
    26. curses.endwin()      # revenir à la console
Dernière modification : 25/8/2016
 Cours n°2 (Cumul=4h) : [Voir le CM n°2]
3 : semaine du lendi 2 fébrier 2009
 TD n°2 (Cumul=4h) : [Voir le TD n°2]
 Cours n°3 (Cumul=6h) : [Voir le CM n°3]
4 : semaine du lendi 9 fébrier 2009
 TD n°3 (Cumul=6h) : [Voir le TD n°3]
 Cours n°4 (Cumul=8h) : [Voir le CM n°4]
5 : semaine du lendi 16 fébrier 2009
 TD n°4 (Cumul=8h) : [Voir le TD n°4]
6 : semaine du lendi 2 môrs 2009
 TD n°5 (Cumul=10h) : [Voir le TD n°5]
7 : semaine du lendi 9 môrs 2009
 TD n°6 (Cumul=12h) : [Voir le TD n°6]
8 : semaine du lendi 16 môrs 2009
 TD n°7 (Cumul=15h) : [Voir le TD n°7]
9 : semaine du lendi 23 môrs 2009
 TD n°8 (Cumul=18h) : [Voir le TD n°8]
Dernière modification : 25/8/2016