Chapitre 10. Ncurses et le clavier, correction

Correction des exercices du Chapitre 4, Ncurses et le clavier.

  1.         import curses
            
            ecran = curses.initscr()
            curses.noecho()
            c = ''
            pos = 0;
            
            while c<>ord('q') :
                ecran.clear()
                ecran.addch(pos,pos,'*')
                c = ecran.getch()
                pos += 1
            
            curses.echo()
            curses.endwin()
         
  2.         import curses
            
            ecran = curses.initscr()
            curses.noecho()
            c = ''
            etat = True
            
            while c<>ord('q') :
                ecran.clear()
                if etat :
                    ecran.addstr(10,10,'il marche')
                else :
                    ecran.addstr(10,10,'il ne marche plus')
                c = ecran.getch()
                if c == ord(' ') :
                    etat = not etat
            
            curses.echo()
            curses.endwin()
         
  3.         import curses
            
            ecran  = curses.initscr()
            curses.noecho()
            ecran.keypad(1)
            
            ecran.clear()
            x = 20
            y = 20
            while 1 :
                ecran.clear()
                ecran.move(y,x)
                c = ecran.getch()
                if c == curses.KEY_DOWN : y += 1
                elif c == curses.KEY_UP : y -= 1
                elif c == curses.KEY_LEFT : x -= 1
                elif c == curses.KEY_RIGHT : x += 1
                elif c == ord('q') : break 
            
            curses.echo()
            curses.endwin()
          
  4.         import curses
            
            ecran = curses.initscr()
            curses.noecho()
            ecran.keypad(1)
            
            ecran.clear()
            ymax,xmax = ecran.getmaxyx()
            x = 20
            y = 20
            while 1 :
                ecran.clear()
                if x > xmax-1 : x = xmax-1
                if x < 0 : x = 0
                if y > ymax-1 : y = ymax-1
                if y < 0 : y = 0
                ecran.move(y,x)
                c = ecran.getch()
                if c == curses.KEY_DOWN : y = y+1
                elif c == curses.KEY_UP : y = y-1
                elif c == curses.KEY_LEFT : x = x-1
                elif c == curses.KEY_RIGHT : x = x+1
                elif c == ord('q') : break 
            
            curses.echo()
            curses.endwin()
         
  5.         import curses
            
            ecran = curses.initscr()
            curses.noecho()
            ecran.keypad(1)
            
            ecran.clear()
            compteur=0
            while 1:
                ecran.clear()
                ecran.addstr(10,10,str(compteur))
                c = ecran.getch()
                if c == curses.KEY_DOWN: compteur -= 1
                elif c == curses.KEY_UP: compteur += 1
                elif c == curses.KEY_NPAGE: compteur -= 100
                elif c == curses.KEY_PPAGE: compteur += 100
                elif c == ord('q'): break 
            
            curses.echo()
            curses.endwin()