BBB

De HackBBS
Révision datée du 1 décembre 2023 à 16:43 par Korigan (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Présentation

Ce contest se déroule sur un chan IRC (pour le moment #test_bot pour les bots non fonctionnels et/ou les tests divers, #hackbbs-battle pour les rencontres. (=> sur irc.2600.net ), si ce n'est pas le cas demander a tosh ou WapiFlapi, les organisateurs. Le contest ce déroule au tour par tour (voir section 2.deroulement d'une partie)

Chaque joueur (Bot) a des points de fireppower, de speed, et de timer, respectivement ces points permettent de faire des bombes qui explosent plus, de poser des bombes qui exploseront plus tard dans le temps, de se déplacer plus vite.

Le but du jeu est d'être les dernier survivant.


Le jeu se déroule dans un repère :


  Y                               
  .                               
  .                               
  .                               
  .                               
  .                               
  3                               
  2                               
  1                               
  0                               
    0  1  2  3  .  .  .  .  .  X 

Toute coordonnée sera donnée sous la forme X Y Les valeurs minimum de X et Y sont 0 Les valeurs maximum de X et Y sont (nombre de joueurs * 5) - 1 Ce qui nous fait une map de largeur et de hauteur égale a 5 fois le nombre de joueurs.


Quand une bombe explose et vous touche vous êtes mort et la partie est finit pour vous.

Source(s)

Les sources de l'arbitre sont maintenant disponible : http://tosh-codes.tuxfamily.org/Documents/Irc_bot.tar.gz

Vous pouvez librement le faire tourner sur un de vos salons pour vos tests personnel, et/ou sur le salon "officiel" si il n'y as pas encore d'arbitre.

Règles

- Tout message dans le chan en public, une fois le jeu comencer (c'est a dire une fois que l'arbitre a annoncer le debut du TOUR 1) resultera en la disqualification imediate du joueur pour ce tour.

- Toute tentative de changement de pseudo, ou autre action en vu de perturber l'arbitre, resultera en la disqualification imediate du joueur pour ce tour.

- Tout travail en equipe des bots, est autorisee et meme encourager cependant le jeu ne s'arettera que quand il n'y aura plus qu'un survivant. Les comunication inter-euipes devront etre faites en respectant les regles.

- Les organisateurs ce reservent le droit de disqualifier des joueurs quand ils considerent que ces joueurs nuient au bon déroulement du jeu en essayant de contourner les règles ou en pratiquant du 'travail en équipe' abusif (des equipes de 50bots par exemple) ou autre.

Déroulement d'une partie

,-- Debut du tour
|
| l'Arbitre annonce le numero du tour, ceci marque le debut de ce tour
|
+-- Envoi des actions
|
| l'Arbitre annonce : 'SEND_YOUR_ACTION"
|
| Periode pendant laquelle chaque joueur peut envoyer des msg prives a l'arbitre avec ses actions.
| Seul le dernier msg envoyee pendant un tour sera pris en compte
|
| Ce tour aura une duree limitee qui sera donnee en debut de jeu.
|
+-- Execution des actions
|
| pendant cette periode l'Arbitre efectue les calculs dans l'ordre :
|
| Execution des deminages.
| Executions des deplacements.
| Executions des etudes.
| Execution des posages de bombes.
| Execution des explosions. (les 
|
+-- Publication des actions
|
| Pendant cette periode (de duree quasi-nulle) l'arbitre poste les actions de chacun sur le chan public.
| Les Bots peuvent alors prendre conaissance des actions des autres.
|
'-------------------------

Commandes de l'arbitre

Listes des informations que le bot envois sur le canal ou en privé : (les [] indique que la commande attends un argument /!\ il ne faut pas lenvoyer les '[' et ']' /!\ )


BEGIN_GAME : annonce le début d'une partie, vous devez envoyer "join_game" au bot avant que la partie ne commence
JOIN_OK : indique que vous êtes bien enregistré pour la partie
MAP_SIZE [size] : indique la taille de la carte au début de partie (une map 2D [size]*[size])
JOUEURS [nb] : [nb] joueurs ont rejoins cette partie
ROUND_LENGHT [lenght] : indique que la durée de chaque tour est de [lenght] secondes
POSITION [player] [x] [y] : indique que [player] se situe maintenant en [x],[y] sur la map.
TOUR [nb] : indique que l'on passe au tour numéro [nb]
NO_ACTION [player] : indique que [player] n'effectue aucune action pour ce tour
STUDY_FIREPOWER [player] [t] : indique qu'il reste [t] tours à [player] pour gagner 1 point de firepower
STUDY_SPEED [player] [t] : indique qu'il reste [t] tours à [player] pour gagner 1 point de speed
STUDY_TIMER [player] [t] : indique qu'il reste [t] tours à [player] pour gagner 1 point de timer
BOMB [player] [t] : indique que [player] a posé une bombe qui explosera dans [t] tours
DEFUSE [player] : indique que [player] est en train de désamorcer les bombes se trouvant sur sa position
SEND_YOUR_ACTION : les informations de ce tours ont finies d'arriver, vous pouvez envoyer votre action pour le prochain tour
NO_ENOUGH_PLAYERS : indique qu'il n'y a pas assez de joueurs pour commencer une partie
DEAD [player] : [player] est mort, la partie est finie pour lui

Listes des commandes que l'on peut envoyer au bot : (les [] indique que la commande attends un argument /!\ il ne faut pas les envoyer /!\ )


join_game : rejoindre une partie (après un message BEGIN_GAME)
NORTH [c] : se déplacer de [c] cases vers le nord
SOUTH [c] : se déplacer de [c] cases vers le sud
EAST [c] : se déplacer de [c] cases vers l'est
WEST [c] : se déplacer de [c] cases vers l'ouest
BOMB [t] : pose une bombe à la position où l'on se trouve, et qui explosera au tour [t]
STUDY_FIREPOWER : permet de gagner 1 point de firepower (il est alors impossible d'effectuer une action pendant 3 tours)
STUDY_TIMER : permet de gagner 1 point de timer (impossible d'effectuer une action pendant 2 tours)
STUDY_SPEED : permet de gagner 1 point de speed (impossible d'effectuer une action pendant 3 tours)
DEFUSE : détruit toutes les bombes se trouvant sur votre case (impossible d'effectuer une action pendant 2 tours)

Actions

vous trouverez ici une description des diferantes actions :

NORTH/SOUTH/EAST/WEST :


Ces actions permetent de ce deplacer respectivement vers Y+ , Y- , X+ , X- Ce qui est illustrée ici :


  Y                               
  .                               
  .              N                
  .              ^                
  .         W <- + -> E           
  .              v                
  3              S                
  2                               
  1                               
  0                               
    0  1  2  3  .  .  .  .  .  X                


Ces actions prenent un argument qui definit de combien de cases on se deplace dans la direction donnee. Si ce nombre est superieur au SPEED du joueur alors l'action est invalide.

BOMB :

BOMB permet de poser une bombe sur la case ou vous vous trouvez.

Les bombes explosent en croix et ont une puissance de feu egale au FIREPOWER du joueur. Exemple :

Les '!' representes les cases touchees par l'explosion de @ si @ a un FIREPOWER de 3 :

  Y                               
  .                               
  .          !                    
  .          !                    
  .          !                    
  . !  !  !  @  !  !  !           
  3          !                    
  2          !                    
  1          !                    
  0                               
    0  1  2  3  .  .  .  .  .  X

La bombe explosera au tour donner en parametre. ainssi BOMB 42 , fera exploser la BOMBE au tour 42.

REMARQUE : Si une bombe, en explosant, atteint une autre bombe, alors cette dernière explose en même temps (et les memes regles s'appliquent pour cette nouvelle bombe.

STUDY_ FIREPOWER/SPEED/TIMER :

les commandes STUDY_MACHIN permetent de gagner un point dans le domaine en question. Il faut savoir que ces etudes prenent plusieurs tours.

STUDY_FIREPOWER : permet de gagner 1 point de firepower (il est alors impossible d'effectuer une action pendant 3 tours)

STUDY_SPEED : permet de gagner 1 point de speed (il est alors impossible d'effectuer une action pendant 3 tours)

STUDY_TIMER : permet de gagner 1 point de timer (il est alors impossible d'effectuer une action pendant 2 tours)

DEFUSE :

Cette comande ne prend pas d'arguments , mais elle prend deux tours :p

premier tour : elle detruit toue les bombes sur votre case (avants qu'elles n'explosent, si elle devaient exploser pendant ce tour) second tour : le Bot 'range son materiel' et est donc imobiliser.

FAQ

Pour avoir des reponsses qui ne sont pas ici demander a tosh ou WapiFlapi , on mettra aussi a jour la FAQ !

# A-t-on le droit d'attaquer directement et autrement qu'avec les methodes definies par le jeu les adversaires?

Des rounds spécial 'FreePlay' seront organisée ou l'on poura TOUT faire :p , mais si rien n'est préciser c'est interdit, ceci afin déviter des degats pour les joueurs dont les bots ne sont pas pret du point de vue securitaire, en phase de test par example

# Si je fais BOMB 5, et que je suis au tour 10, est-ce que mon 'BOMB 5' est compté comme une action quand meme # (et donc je ne peut rien faire d'autre), ou bien est-ce ignoré par l'arbitre?

En fait l'arbitre prend en compte la derniere action envoyer. Qu'elle sois valide ou non. Puis si elle est valide elle est executer : - On est au tour 10. - J'envois 'BOMB 15' (qui est valide) - Puis j'envois 'BOMB 5' (invalide) L'Arbitre prend en compte uniquement le BOMB 5 qui est invalide, donc je ne ferais rien.

# Si je fais BOMB 45, et STUDY_FIREPOWER entre temps, la bomb gagnera en puissance.

       # Le nombre de points de Timer correspond au nombre de tours maximun avant l'explosion de la bombe,
         
               Par exemple :
               Avec un bot à 3 points de Timer, on pourra choisir de faire exploser notre bombe jusqu'à 3 tours plus tard.
               Soit au tour 10, l'envois de 'BOMB' sera valide de 11 à 13