Cyril Rabat


TP n°1 : prise en main de ncurses

 Télécharger en PDF

Le but de ce TP est de prendre en main la bibliothèque ncurses qui permet de réaliser des interfaces en ligne de commandes. Elle sera utilisée dans les prochains TPs. Avant de commencer, il est fortement conseillé de lire l'article sur le makefile (voir lien à la fin de l'article).

 

Même si vous ne terminez pas le sujet lors de la séance, il est fortement conseillé de le terminer chez vous. Certaines parties seront réutilisées dans les prochains TPs.

Gestion du clavier et de la souris

   Le but de cet exercice est de prendre en main l'affichage ncurses puis la capture d'une touche pressée sur le clavier ou d'un évènement de la souris.

Questions

  1. Faites un programme qui active le mode ncurses puis qui affiche "Bonjour" au milieu de l'écran. Lorsque l'utilisateur presse "F2", le programme se termine (et quitte le mode d'affichage ncurses).
  2. Modifiez votre programme pour que quand l'utilisateur tape sur les touches 1, 2 ou 3, la couleur de "Bonjour" change (en fonction de la touche saisie).
  3. Dessinez maintenant 3 carrés de couleurs différentes. Lorsque l'utilisateur clique sur l'un de ces carrés avec la souris, le texte change de couleur.

Utilisation des fenêtres

   ncurses permet de créer des fenêtres qui sont des parties de l'écran qui possèdent une mémoire propre et qui peuvent être affichées indépendamment.

Questions

  1. Créez une application contenant deux fenêtres. La première, la fenêtre d'informations, permet d'afficher des informations sur la largeur du terminal et de 10 lignes. La seconde fenêtre fait 10 par 10.
  2. Lorsque l'utilisateur clique dans la deuxième fenêtre avec la souris, on affiche les coordonnées dans la fenêtre d'informations et on affiche un 'X' à l'endroit où l'utilisateur a cliqué.
  3. Ajoutez maintenant un bord à vos fenêtres.
 

Il faut activer le défilement pour la fenêtre d'informations. Mais attention lorsque vous ajoutez un bord : il faudra trouver une solution (cf. cours).

Le démineur à deux joueurs

   Nous souhaitons développer un jeu de démineur. Le jeu se joue sur un terrain dont les dimensions sont spécifiées en paramètres. Des mines sont placées aléatoirement sur le terrain (le nombre est spécifié aussi en paramètre). Au départ, le terrain est vierge : rien n'est affiché. À tour de rôle, les joueurs cliquent sur une case du terrain : celui qui clique sur une mine à perdu. Sinon, la case est remplacée par le nombre de mines situées sur les cases adjacentes. La figure suivante montre un exemple de jeu.

Questions

  1. Proposez une interface contenant deux fenêtres : l'une pour le terrain et l'autre pour les informations.
  2. Proposez une structure pour gérer le terrain, ainsi que les fonctions/procédures permettant de le gérer. Vous créerez deux fichiers .c et .h.
  3. Écrivez l'application.

Outils


Version de cette page Mardi 16 Janvier 2018

© Cyril Rabat 2016

Connexion

Mot de passe perdu

Dernières nouvelles

Aucune pour le moment

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-326-91-33-81

Fax :
+33-326-91-33-97

Facebook :
lien Facebook direct