netRoboter

netRoboter est un projet open source (!?) de transposition du jeu de plateau Rasende Roboter sur des technologies informatiques et des réseaux.

images/netRoboter.jpg

Règles du jeu

Le plateau de jeu

Il est constitué de murs aléatoirement placés, de 16 cibles de 5 couleurs différentes (dont 1 seule, la cible à atteindre, est visible dans cette version réseau) et de 4 robots de 4 couleurs différentes.

Le but

Il s'agit de faire parvenir sur une cible particulière le robot de la même couleur (pour la cible noire, n'importe quel robot fera l'affaire).

Les déplacements

Un robot peut aller dans les 4 directions jusqu'à ce qu'une mur l'arrête et cela compte pour 1 déplacement.

Le gagnant

Le joueur qui annonce le plus tôt (et démontre) une solution en le minimum de déplacements a gagné.

L'intérêt

Outre l'intéret intrinsèque du jeu, un joueur peut venir sur une partie à tout moment et tout le monde joue en même temps.

Sources et programmes

Serveur

Sources

Serveur Net Roboter en C ansi.

Distributions

Serveur Net Roboter pour Windows (gcc sous Cygwin)
Serveur Net Roboter pour Linux (gcc)

Client

Sources

Client Net Roboter en Java
Client Net Roboter en Visual Basic

Distributions

Client Net Roboter (installeur) pour Windows (package vb)
Client Net Roboter (standalone) pour Windows (suivre les instruction du readme. Merci grogro)
Client Net Roboter multi-plate-forme (Java) (pour toute plate-forme avec JVM. Version beta, quelques soucis sous Linux. Aide bienvenue)

Spécifications

Messages échangés entre les clients et le serveur netRoboter (txt)
Algorithme du serveur (diagramme d'états) (pdf)
Algorithme de netRoboter Server (txt)

Historique

18/09/2005 : un client en Java!

Une version Java enfin jouable est disponible! 3 ans après la dernière modifs, il était temps.

22/11/2002 : version RC6

Possibilité d'abdiquer pour abbréger l'attente quand tout le monde considère qu'il ne proposera pas mieux

08/08/2001 : version RC5

Possibilité de reset du score
Passage en mode Away sous forme de bouton (client)
Déplacements au clavier (client)
Les joueurs aways sont affichés en tant que tels (modif SC_JOU)
Correction du bug de la derniere cible
Correction du bug du coup en 1 vers la cible en spirale
Affichage du temps écoulé depuis le dernier tour

08/07/2001 : version RC4

Mise en place d'un mode away bloquant la participation et ne comptant plus les parties
Au départ d'une partie 2 pions ne peuvent plus etre superposés
Au départ d'une partie un pion ne peut se trouver d'office sur sa cible
Il n'est plus possible de se voir proposer une cible en un coup
Le serveur interdit 2 nick identiques
Plus de bug de blocage en fin de cycle (après les 17 cibles)
2 traces de couleurs différentes se superposent
Plus de virugule dans les pourcentages des scores
Le serveur et le port sont rappelés au niveau du client
Les propositions négatives, nulles ou égales à 1sont ignorées
L'heure des messages est affichée
Le nombre de coups est affiché

25/06/2001 : version RC3

Pas de pion au milieu
Pas de pions superposés
Debug de SC_WIN

24/06/2001 : version RC2

Gestion de l'affichage des traces
Relookage du client vb, plateau restant de forme carré, retour aux couleurs d'origine sur la demande express de Lucas
Gestion correcte des déplacements sans effet
Chrono pour montrer la solution
5 secondes entre chaque tour
Etats du jeu (en attente de proposition, en démonstration, entre 2 tours)
Erreurs non fonctionnelles vers stderr
Codes d'erreurs

20/06/2001 : version RC1

Abandonner pendant le chrono annule la proposition et le chrono s'il n'y a pas d'autres propositions
Un abandon remet les pieces à leur place d'origine
Ajout du nombre de parties avec les scores
Le client Vb affiche la couleur sélectionnée

19/06/2001 : version beta 3

Correction des derniers bugs de gestion des scores et des annonces
Correction du bug select()/time.h causant 100% de CPU

17/06/2001 : version beta 2

Gestion propre des deconnexions pour les scores et annonces
Gestion propre de la fin de partie
Temps de reflexion et port paramétrable (merci pom pour getopt_long())
/!\ le message "PPR" devient "SC_PPR"
Mise à jour de la doc (hu hu hu)
Amélioration de la lisibilité du code
Validation -Wall -ansi

10/06/2001 : version beta 1

serveur en C multi-client jouable à plusieurs.
Restent quelques bugs de sockets et d'algo.

19/12/2000 : version alpha

serveur mono-client pour windows jouable en solo ou à 2
client sous windows

Reste à faire

Fin de débug pour release :
executer en mode démon
fflush des traces
compter le nombre de coup et erreur si plus de coups pendant propale

Stats en base

Un client Web

Tester (merci pom, walglob, bidulpik, jazzman)