Roadmap to next exercice: multiplayer & network

This commit is contained in:
Fred Z 2018-03-06 23:00:00 +01:00
parent 7b6953a948
commit f903089686
2 changed files with 88 additions and 9 deletions

67
roboc/README-en.md Normal file
View File

@ -0,0 +1,67 @@
# Roboc
## Exercice instructions
Multiplayer maze game over network
All instructions avaiable in the course
_[Apprenez à programmer en Python](https://openclassrooms.com/courses/apprenez-a-programmer-en-python/exercises/181)_
, from **Open Classrooms**.
## Gameplay
1. run server
2. choose a map
3. accept client connection
4. for each client a new robot is created
5. each robot is randomly placed on the map
6. when number of connected client is reached, any clients can start the
game with the command 'c'
7. no new client during the game
## Usage
- `server.py`: server script
- `client.py`: client script
- `configuration.py`: configuration file
- `map.py`: map object
- `readme.md`, you are reading it!
- `cartes`: place for map files (ext. `.txt`)
## Commands
The robot is controllable by keyboard commands. The following commands
must exist:
- Q: Quit game
- N: move north (up)
- E: move east (right)
- S: move south (down)
- O: move west (left)
- Each of the above directions followed by a number allows you to
advance several squares (e. g. E3:3 squares to the east)
## Remarques
Dans les fonctionnalites attendue, la consigne sur la sauvegarde à été
décrites dans 2 consignes qui m'ont semblée floue:
> Enregistrer automatiquement chaque partie à chaque coup pour permettre
de les continuer plus tard
> Q qui doit permettre de sauvegarder et quitter la partie en cours
J'ai choisi d'implementer la sauvegarde par tour, qui sera de fait,
réalisée quand le joueur quitte. Les 2 fonctionnalitées sont ainsi
respectées.
## Bonus
Quelques fonctionnalitées en bonus:
- contrôle/vérification des cartes, avec quelques cartes «de test», qui
ne sont pas jouable
- affichage du recap des commandes (aide), permettant d'ajouter
d'autres commades utilisateur plus tard
- la docstring du fichier `map.py` contient des [DocTests](http://sametmax.com/les-docstrings/),
ça ne fait pas partie du cours, mais c'est un outils facile de
test/debug que j'utilise et qui reste transparent.

View File

@ -1,12 +1,24 @@
# TODO list
Piste d'amelioration du code après avoir vu le corrigé-type et fait la
correction des autres élèves.
## Roadmap to v0.2 [exercice 4](https://openclassrooms.com/courses/apprenez-a-programmer-en-python/exercises/181)
- creer un objet pour traiter la rencontre d'un element, avec des
attributs et methodes qui permettront d'ajouter des obstacles simplement
dans la conf et sur la carte, plutot que de rajouter une condition dans
le script traitant les mouvements et mettre a jour les attributs de laç
carte _à la main_
- definir dans sa classe les caracteristique d'une carte valide plutôt
que dans le script
- [] remove the backup feature TODO01
- [] conversion to client/server mode: server creation TODO02
- [] conversion to client/server mode: client creation TODO03
- [] multiplayer turn-by-turn TODO04
- [] each player has a differant robot TODO05
- [] starting position has to be random TODO06
- [] one movement unit per tour: ex «e3» = 3 turns TODO07
- [] unit tests: map conformity TODO08
- [] unit tests: converting map to labyrinthe TODO09
- [] unit tests: game functions TODO10
- [] add new game command: 'm' (walling door) TODO11
- [] add new game command: 'p' (drilling door) TODO12
- [] reject (or standby) clients connections when a game is playing TODO13
- [] unit tests: game functions (client-side) TODO14
- [] new commands: listing players TODO15
- [] new commands: chating with other players TODO16
Ideas after correcting [exercice 3](https://openclassrooms.com/courses/apprenez-a-programmer-en-python/exercises/180):
- [] go further in oriented object logic TODO17