BomberMan-Simu est un jeu de combat de programmes, le jeu se déroule dans l'arêne du fameux jeu BomberMan
.
bomberman-simu
est le programme permettant de simuler une partie entre plusieurs programmes «joueurs».
Pour participer, un programme communique avec le simulateur par socket TCP/IP,
les échanges entre les programmes et le simulateur sont régis par un protocole textuel basé lignes.
Les étapes suivantes donnent la définition du protocole:
-
Le programme joueur se connecte au serveur sur le port TCP/IP 9000 et envoie son nom de joueur suivi d'un retour chariot (
\n
, caractère ASCII 10):Patator\n
-
Dès la connexion le serveur envoie très régulièrement l'état du jeu:
\n X E ... E M\n M S ... E M\n ...\n M S ... M M\n i\n x1 y1 ALIVE\n x2 y2 KILLED\n
- l'ensemble du plateau de jeu est envoyé, le plateau de fait 13 cases de large sur 11 de haut, les valeurs possibles des cases sont:
EM
(Empty) est une case videBL
(Block) est un block indestructibleWA
(Wall) est un mur destructibleBO
(Bomb) est une bombe (qui va exploser)FI
(Fire) est une case en feuBB
(Bonus Bomb) est l'option BombBF
(Bonus Fire) est l'option FireBR
(Bonus Roller) est l'option Roller
- suit une série, une pour chaque joueur, de
i
position suivi de ALIVE ou KILLED indiquant l'état du joueur. - le joueur recevant le flux est toujours en premier dans la liste.
- A tout moment le joueur peut envoyer des commandes pour se déplacer :
UP
pour se deplacer vers le hautDOWN
vers le basLEFT
vers la gaucheRIGHT
vers la droiteNOP
pour indiquer aucun mouvement
La commande de déplacement peut être accompagnée de la commande BOMB
pour poser une bombe
(par exemple LEFT BOMB\n
pour se déplacer à gauche et poser une bombe). Si aucune commande
n'est envoyée le joueur continue de se déplacer dans la direction précédente. Par contre la commande
BOMB
est à effet instantané et unique.
Au départ, chaque joueur démarre dans un des coin de la carte.
Les joueurs peuvent se déplacer librement sur les cases vides. Si au moins la moitier d'un joueur dépasse d'une case bloquante (Block ou Wall) il peut se déplacer perpendiculairement (ou péremptoire ça dépend) et est automatique recentré sur la case vide (oui je sais, c'est pas clair).
- l'option Bomb permet de poser une bombe de plus simultanemment
- l'option Fire permet d'augmenter la taille des explosions
- l'option Roller permet de se déplacer plus vite
Le gagant de la partie est celui qui le dernier survivant. Si tous les joueurs sont tués par la même explosion, il y a match nul.
Pour lancer le simulateur exécuter la commande :
bomberman-simu.bat server
Il est possible de tester le simulateur avec un client controlable au clavier,
la commande suivante permet de lancer le client :
bomberman-simu.bat client