% Preamble
\documentclass[a4paper,12pt]{article}

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

% Title
\title{Projet Python : Dungeons and Diagrams}
\author{D.Moreaux}

% Document
\begin{document}
\maketitle
\section{Introduction}
Le but de ce projet est de réaliser une application web en Python/Flask en utilisant les templates Jinja2 et une
connexion vers une base de données PostgreSQL en utilisant la bibliothèque Psycopg pour se connecter à la DB.

L'application proposera une interface en ``web 1.0'' (pages séparées, liens et formulaires) qui permettra de créer un
compte, s'authentifier, choisir un niveau et afficher les meilleurs scores globaux ou pour un niveau donné.

Elle utilisera une page ``web 2.0'' (AJAX) pour la partie jeu en elle-même (le numéro du niveau sera encodé dans la
page, le javascript le récupérera, l'utilisera pour télécharger les informations du niveau et permettra de faire
la résolution du niveau en Javascript. Une fois la partie terminée, elle enverra le plateau de jeu pour vérification
au serveur et proposera un lien/bouton pour accéder à l'écran de résultat en mode ``web 1.0'')

Le jeu est repris du jeu {\em Last Call BBS} qui propose plusieurs mini-jeux dont {\em Dungeons and Diagrams}.

\section{Le jeu}
Le plateau de jeu consiste en une grille 8x8 représentant le donjon. Sur les côtés supérieur et gauche se trouvent
des nombres. Sur la grille peuvent se trouver des monstres et des coffres au trésor. Le joueur doit trouver la position
des murs d'après les indices présents.
\begin{itemize}
    \item Les numéros indiquent le nombre de blocs ``mur'' sur la ligne/colonne concernée
    \item Les trésors se trouvent dans des salles au trésor de 3x3 qui ne possèdent qu'une seule sortie. Le trésor
    n'est pas obligatoirement au centre de la salle.
    \item Les monstres se trouvent dans des culs-de sac. Seule une des cases autour du monstre n'est pas un mur.
    \item Les couloirs font une case de large. On ne peut donc pas trouver de zone 2x2 libre.
\end{itemize}

Le joueur peut cliquer sur une case pour la marquer comme un mur ou mettre une marque comme quoi il ne s'agit pas d'un
mur. Au choix, on utilisera le bouton gauche plus placer/enlever un mur et le bouton droit pour placer/enlever une
marque. Si on place un mur sur une case où se trouvait une marque, la marque disparaît et vice-versa.

Quand le nombre de murs dans une ligne/colonne correspond au nombre, ce nombre doit changer de couleur. Quand tous les
nombres sont vérifiés, un bouton ``envoyer'' sera affiché pour soumettre le résultat au serveur.

\section{Meilleurs scores}
On pourra séparément afficher les meilleurs scores globaux (nombre de niveaux résolus et temps moyen par niveau) ou les
meilleurs temps d'un niveau. Vu le nombre de niveaux, chaque niveau aura une page séparée pour ses meilleurs scores.

Le temps sera calculé entre le moment où on commence le niveau et le moment où on aura validé sa solution. Le serveur
devra vérifier que les conditions sont vérifiées.



\end{document}