From 8b3612fce76d3d331acc7384c04bbfc83fd26470 Mon Sep 17 00:00:00 2001 From: piernov Date: Thu, 21 Apr 2016 20:14:12 +0200 Subject: Add Proposition initiale document --- doc/Proposition initiale.tex | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 doc/Proposition initiale.tex (limited to 'doc/Proposition initiale.tex') diff --git a/doc/Proposition initiale.tex b/doc/Proposition initiale.tex new file mode 100644 index 0000000..cc84261 --- /dev/null +++ b/doc/Proposition initiale.tex @@ -0,0 +1,112 @@ +\documentclass{article} +\usepackage{luatextra} +\usepackage{polyglossia} +\usepackage{ulem} +\usepackage{framed} +\usepackage{color} +\usepackage{listings} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{unicode-math} +\usepackage{hyperref} + +\usepackage{ifluatex} +\ifluatex + \usepackage{pdftexcmds} + \makeatletter + \let\pdfstrcmp\pdf@strcmp + \let\pdffilemoddate\pdf@filemoddate + \makeatother +\fi +\usepackage{svg} + +\setmathfont{xits-math.otf} + +\setmainlanguage{french} +\setmainfont{Latin Modern Roman} + +\definecolor{dkgreen}{rgb}{0,0.6,0} +\definecolor{gray}{rgb}{0.5,0.5,0.5} +\definecolor{mauve}{rgb}{0.58,0,0.82} + +\lstset{language=bash, + basicstyle={\small\ttfamily}, + keywordstyle=\color{blue}, + commentstyle=\color{dkgreen}, + stringstyle=\color{mauve}, + tabsize=4 +} + + +\geometry{margin={1in,1in}} + +\newcommand\image[2]{ +\directlua{ +local image = img.scan({filename = "#1"}) + +image.height = image.height * #2 +image.width = image.width * #2 + +node.write(img.node(image)) +} +} + +\title{Organisation} +\author{Alexandre RENOUX - Pierre-Emmanuel NOVAC} + +\begin{document} + +\maketitle +%%\tableofcontents + +\section{Fonctionalités} + +\subsection{Mine} +La quantité d'or disponible dans la mine augmente périodiquement. Ce comportement est géré côté client en Javascript à l'aide d'une méthode programmée par \lstinline{window.setInterval}. On n'enverra pas une requête au serveur à chaque incrémentation pour limiter les problèmes de latence et ne pas avoir un flot de données transférées trop important. L'utilisateur pourra choisir à tout moment de transférer la quantité d'or disponible dans la mine vers son compte courant. Cette opération effectuera une requête vers le +bouton envoi requête au serveur avec le montant de la mine pour l'ajouter à l'or de la session de l'utilisateur. Cette opération passera par une requête au serveur, qui mettra alors à jour le solde et qui l'enverra au client. Le client remettra la quantité d'or dans la mine à zéro. + +\subsection{Guilde de mineurs} +La création d'une guilde de mineurs demandera une certainer quantité d'or. Puis le recrutement de mineurs requierera aussi une quantité d'or. Ces requêtes seront envoyées au serveur qui décidera d'honorer ou non la demande, renvoyant au client les nouvelles informations pour mise à jour de l'affichage. Un nouveau mineur sera automatiquement assigné à la mine, et dès lors il apportera un bonus sur la quantité d'or perçue. + + +\subsection{Magasin} +Le magasin lira la liste des objets disponibles à partir d'un fichier stocké sur le serveur (en XML par exemple). Lors du chargement de la page cette liste sera transmise au client. +bouton → réclamation d'un certain objet au serveur parmi une liste prédéfinie + → renvoi l'objet au clietn pour affichage + Les objets incluence lde pouvoir d'attaque (pourcentage de chance de toucher) + +\subsection{Doinjon} → bouton → entre dans le donjon et lance le combat + - déroulement du combat côté client (perte de point de vie et victoire/défaite) + ensuite envoi du résultat du combat + côté serveur: tableau des différents monstres à combattre dans l'ordre + À l'issue du combat seulement le résultat est envoyé au serveur car on récupère le niveau du monstre et le nombre d'expéreince gagné associé dans le tableau + incrémentation et augmentation de niveau potentiele + "n" monstre par étage + Si le boss est vaincu, appelle fonction de fin du donjon + +\subsection{bouton enregistrement/chargement de partie}: normalement toutes les données intéressantes sont dans \$SESSION côté serveur on transforme le tableau en fichier XML + bouton load: opération inverse càd on remplkit \$SESSION avec les données du XML et on envoi tout au client + +\subsection{Interface utilisateur} + +\section{Technologie} + +XHTML: pour affichage de la page web principale +CSS: Bootstrap style des boutons +Javascript: affichage dynamique, interaction dynamique avec l'interface utilisateur +Ajax: interaction dynamique client/serveur. Envoi des données au serveur +PHP: Session, stockage des données, envoie des données au client pour affichage +XML: pour sauvegarder et charger une partie +JSON: structure syntaxique pour transfert serveur/client +Git: gestion du code + +Hébergement sur piernov.org + +\section{Planification} + +1ère semaine: mine, guilde, magasin +2e semaine: donjon + save/load(XML) +3e semaine: interface utilisateur, bugs, rapport, préparation soutenance. + + +\end{document} -- cgit v1.2.3-54-g00ecf