général
curriculum vitae
contact

CARDIWEB
2007
2006
2005

Etudes
les projets
les sites web
les exposés

liens
OTB World
EPITA
PCN
CARDIWEB

 

	Mini-Projet « aïe, Kan dit ! »
        ==============================


	Au cas   où vous ne  le connaîtriez  pas,  il existe dans tout
	ordinateur un petit  être filiforme nommé  Kan.  Malgré toutes
	les   moqueries  de  certains  utilisateurs,   le  mépris  des
	administrateurs,  les  tortures des  développeurs, Kan  survit
	malgré tout, et  même aujourd'hui n'importe quel informaticien
	le connaît : c'est Kan qui combat dans l'arène de TRON, qui se
	gave tellement qu'il  en  grandit dans  Nibbles, qui tente  de
	remplir les labyrinthes de  XLock et XScreenSaver, qui fait le
	manège dans les barres de progression, bref, il est partout.

	Aujourd'hui, votre mission,  si vous  l'acceptez, sera de  lui
	faire passer un sale quart d'heure.

	Pour cela, vous devrez  construire plusieurs outils de torture
	et  les utiliser sur Kan,  en _montrant_ autant que possible à
	quel point vous réussissez.

Fonctionnement général :
------------------------

	Vous enfermez Kan dans un parc avec 4 outils de torture.

	Kan se déplace en tentant d'éviter les obstacles.
	
	L'utilisateur    apprenti-bourreau   contrôle   les  outils de
	torture, en les plaçant de manière à coincer Kan.

	Lorsque Kan ne  peut  plus avancer, il crie   « aïe ! »  et la
	torture se termine.

	L'apprenti-bourreau  dispose d'une durée  limitée pour coincer
	Kan. Plus il met   de temps à  agir  sur Kan, plus  son  score
	diminue.

	Si Kan est libre au bout de cette durée limitée, le bourreau a
	échoué, et la torture se termine.


Voici quelles sont les règles du jeu :
--------------------------------------

- Kan ne doit pas paraître beau.

  Pour cela, le jeu doit se dérouler dans un terminal.


- Kan est stupide. 

  Kan se dirige en ligne droite et avance devant lui en permanence, en
  changeant de direction quand il rencontre un obstacle.

- Kan grandit en permanence, comme dans TRON.

- Kan ne doit pas pouvoir s'enfuir.

  Pour  cela, vous devez l'enfermer   dans un parc solidement délimité
  par des barrières : votre jeu doit être encadré.

  Par ailleurs, le cadre ne doit pas être dégradé par les utilisateurs
  compatissants : on ne doit pas constater  de dégradation du cadre en
  cas de redimensionnement du terminal ou de suspension du programme.


- Il ne doit pas y avoir plus de 4 outils de torture à la fois dans le
  parc.


- L'apprenti-bourreau doit pouvoir contrôler la torture.

  Pour cela,  vous  devez autoriser l'utilisateur  du  programme  à le
  contrôler. Les touches de contrôle sont :

  *  Les touches F1-F4, ou 1-4 si les touches de  fonction ne sont pas
     disponibles, pour sélectionner l'outil de torture.

  *  Les touches  fléchées,  ou 'h',  'j', 'k'  et 'l' si  les touches
     fléchées ne sont   pas disponibles, pour  diriger  les  outils de
     torture.

  *  La touche d'échappement pour arrêter la torture quand le bourreau
     se lasse.


- La  durée maximum (en  secondes)  est donnée en premier  argument du
  programme sur la ligne de commande.


Indications complémentaires
---------------------------

  Kan  considère comme «  libre » toute  zone du terminal  où il n'y a
  rien d'affiché.

  Lorsque Kan doit changer de direction, vous pouvez lui faire choisir
  de tout le   temps tourner du    même coté, ou  changer  de  côté au
  hasard. À vous de choisir. Néanmoins, Kan doit toujours avancer s'il
  y a une zone libre proche de sa « tête ».

  Un « outil de torture » est un objet opaque (une forme), représentée
  sur le terminal.  L'objet  de torture le plus  simple est le segment
  rigide  (une barrière),   horizontale ou verticale,   d'une longueur
  quelconque.   À vous d'expérimenter  quelles formes vous conviennent
  le mieux.
  Dans la mesure  ou tout obstacle  bloque Kan, vous pouvez considérer
  le bord du  parc et  la  queue de Kan  comme  des outils de  torture
  secondaires.
 
  Le déplacement des outils  de torture doit découper,  ou « effacer »
  la queue de Kan.

  Le but  du « jeu » est  donc d'enfermer la « tête  » de Kan dans une
  zone du terminal qu'il remplira en  grandissant dans le temps limite
  imposé.

  Lorsque le  « jeu »  se  termine, le  terminal doit être entièrement
  effacé   et  le résultat (score) doit   être  affiché au _centre_ du
  terminal,   en attendant que  l'utilisateur  valide pour terminer le
  programme.

Bonii possibles
---------------

  - Changement de couleur de Kan au cours du temps (maladie)

  - Paramétrage des  formes des outils de  torture (à vous  de choisir
  comment)

  - « blocage » des outils de torture contre le « bord » du terminal

  - Effets visuels variés.


Modalités
---------

  Vous avez  droit à toutes les  fonctions de la bibliothèque standard
  déjà présentées, plus les terminfos.
  Vous ne devez pas utiliser les Curses.

  Votre exécutable doit s'appeler "eyecandy".
  Votre répertoire de sources ne doit être accessible que par vous.

  Vous   rendrez votre mini-projet  pour le   27 novembre  à 08:00, en
  utilisant le script de rendu des ACUs:

  ~acu/mbin/rendu.sh mp eyecandy

  Le newsgroup destiné à ce mini-projet est epita.cours.c-unix.mini-projs

Évaluation
----------

  Vous serez évalués sur au moins les critères suivants :
  
  - connaissance du cours
  - le respect des règles données dans le sujet
      * robustesse de votre programme vis-à-vis des signaux
        de redimensionnement et suspension
      * adaptation de votre « environnement » selon la taille
        du terminal
      * bonne détection du « blocage » de la tête de Kan
  - la bonne utilisation des terminfos
      * robustesse de votre programme vis-à-vis des terminaux
        sous-équipés en « capabilities »
      * fonctionnement correct sur terminaux de types différents
  - la bonne gestion de l'entrée utilisateur
      * robustesse de votre programme vis-à-vis des entrées
        rapides et (relativement) lentes
      * bonne utilisation des arguments en ligne de commande
      * robustesse vis-à-vis des redirections
 
Les aspects subjectifs (beauté du programme à l'exécution) seront
notés séparément à plus petit coefficient.

 


 

 
 
     

| Copyright 2002 © OTB World Conception |
.:: version du site : v2.0 ::.