% 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}
\usepackage{stmaryrd}

% Title
\title{Pente : Gestion de la partie}
\author{D.Moreaux}

% Document
\begin{document}
\maketitle
\section{But de l'étape}
On ajoutera la gestion de la partie côté serveur. Mettre à jour les plateaux de jeu, détecter les
coups illégaux, la victoire, gérer la situation d'abandon,\dots

A la fin de cette étape, il ne manquera plus que la sauvegarde des profils des utilisateurs dans la DB.

\section{Serveur}
Le serveur devra pour chaque partie conserver le tableau de jeu. Il devra gérer les échanges avec les joueurs
\begin{itemize}
\item envoyer le tableau de jeu actuel
\item verifier la validité d'un coup, le marquer sur le tableau de jeu et indiquer si le coup est valide ou pas (ou signaler que
      l'adversaire a abandonné)
\item retourner l'état de la partie : gagné/perdu/abandon par l'autre joueur/attente de coup/\dots
\item gérer un message de demande d'abandon
\end{itemize}

\section{Client}
La partie ``gestion de la partie'' devra être réalisée. Le programme devra à intervalle régulier demander l'état de la partie
au serveur (afin de savoir si la partie a été abandonnée, si l'adversaire a joué,\dots). Pour se faire, on utilisera le timer
utilisé pour la gestion des ticks.

On pourra au choix accumuler les ``time\_delta'' retournés par la fonction tick ou utiliser la fonction 
\verb|pygame.time.get_ticks()| pour obtenir le nombre de millisecondes depuis l'initialisation de pygame. On utilisera cette
valeur pour gérer le temps.

L'affichage du tableau de jeu se basera sur le tableau retourné par le serveur (et non plus une version maintenue localement),
les coups joués seront transmis au serveur qui se chargera de vérifier s'ils sont valides (on peut également faire une validation
côté client mais elle n'est pas obligatoire).

A la fin de cette étape, le client sera complètement terminé.

\end{document}