\documentclass[a4paper,12pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{eurosym}
\usepackage{epsfig}

\title{AJAX - Enoncé 5}
\author{D.Moreaux}

\begin{document}
\maketitle
\abstract
Utiliser des closures pour des gestionnaires d'événements générés en série.

\section{Edition}
Dans les différents écrans de l'éditeur, ajouter la fonctionnalité
d'édition.

Pour les objets, seule la description pourra être modifiée
(la modification de la position de départ ou du mot associé se faisant
au niveau du tableau principal).

Pour les mots et les déplacements, l'édition ne sera pas proposée (il
faudra effacer l'entrée et la recréer)

Quand on cliquera sur l'icone, une fonction sera chargée d'appeler un
pop-up d'édition (qui peut être le même que celui de création,
attention cependant à la sauvegarde). Une fois la sauvegarde faite, on
rafraîchira l'affichage.

\section{Nouveau déplacement}
On ajoutera un formulaire qui permettra de créer un nouveau
déplacement. Il faudra récupérer les listes de pièces et de mots afin
d'afficher des listes déroulantes pour l'origine, la destination et le
mot utilisé.

Une façon de faire est d'utiliser les informations récupérées lors du
chargement de l'écran en question et de les conserver dans la closure
du gestionnaire d'événement (qui devra être alors régénéré à chaque
accès à l'écran en question).

\section{Listes pour les objets et déplacements}
On ajoutera des gestionnaires d'événements {\em onchange} sur les
listes qui permettent de choisir une pièce et un mot afin que les
changements soient automatiquement envoyés au serveur.

\section{Effacement}
Au niveau des écrans de vocabulaire et de mouvement, on ajoutera
l'effacement des entrées.

\section{Complément/Errata au projet 4}
La liste des états et des actions a été un peu revue.

\subsection{Pour les actions}
\begin{description}
\item[NOP] No Operation. Retourne sans rien faire.
\item[TEXT] Affiche un texte avec ou sans effacement de l'écran
\item[CMD] Permet l'entrée d'une commande
\item[RESET] Indique au navigateur que le jeu est initialisé
\item[LOGOUT] Force un logout sur le navigateur
\item[PAUSE] Attends un délai fourni (en ms). Si le délai vaut 0,
  attend indéfiniment. Le délai est terminé si une touche est enfoncée.
\item[YESNO] Affiche une boîte de dialogue oui/non.
\item[SAVESLOT] Permet d'afficher les slots de sauvegarde disponibles.
\end{description}

\subsection{Pour les états de la machine d'état}
\begin{description}
\item[INIT] Initialisation du système
\item[DESC] Envoyer la description
\item[TBL] Traite une table (action/status). Des variables de
  sessions indiqueront la table, l'entrée et la ligne d'instruction
  concernées
\item[CMD] Traite la commande entrée par l'utilisateur
\item[QUIT] Attend la réponse oui/non quand l'instruction QUIT est
  rencontrée
\item[END] Attend la réponse oui/non quand l'instruction END est
  rencontrée
\item[LOAD] Attend le slot de sauvegarde à charger
\item[SAVE] Attend le slot de sauvegarde dans lequel sauver
\end{description}

\end{document}
