« BBB » : différence entre les versions

De HackBBS
Aller à la navigation Aller à la recherche
 
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
== Présentation ==
== 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 ),
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.
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)
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
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
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.
exploseront plus tard dans le temps, de se déplacer plus vite.
Le but du jeu est d'être les dernier survivant.
Le but du jeu est d'être les dernier survivant.




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


Ligne 27 : Ligne 27 :
     0  1  2  3  .  .  .  .  .  X  
     0  1  2  3  .  .  .  .  .  X  


Toute coordonnée sera donnée sous la forme X Y
Toute coordonnée sera donnée sous la forme X Y
Les valeurs minimum de X et Y sont 0
Les valeurs minimum de X et Y sont 0
Les valeurs maximum de X et Y sont (nombre de joueurs * 5) - 1
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.
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.
Quand une bombe explose et vous touche vous êtes mort et la partie est finit pour vous.


== Source(s) ==
== Source(s) ==
Ligne 42 : Ligne 42 :
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.
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 ==
== Règles ==




Ligne 57 : Ligne 57 :


- Les organisateurs ce reservent le droit de disqualifier des joueurs quand ils
- 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
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
contourner les règles ou en pratiquant du 'travail en équipe' abusif (des equipes
de 50bots par exemple) ou autre.
de 50bots par exemple) ou autre.


== Déroulement d'une partie ==
== Déroulement d'une partie ==


  ,-- Debut du tour
  ,-- Debut du tour
Ligne 94 : Ligne 94 :


== Commandes de l'arbitre ==
== Commandes de l'arbitre ==
Listes des informations que le bot envois sur le canal ou en privé :
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 ']' /!\ )
(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
  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
  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])
  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
  JOUEURS [nb] : [nb] joueurs ont rejoins cette partie
  ROUND_LENGHT [lenght] : indique que la durée de chaque tour est de [lenght] secondes
  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.
  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]
  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
  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_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_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
  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
  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
  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
  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
  NO_ENOUGH_PLAYERS : indique qu'il n'y a pas assez de joueurs pour commencer une partie
Ligne 119 : Ligne 119 :
--------------------------------------------------------------------
--------------------------------------------------------------------


  join_game : rejoindre une partie (après un message BEGIN_GAME)
  join_game : rejoindre une partie (après un message BEGIN_GAME)
  NORTH [c] : se déplacer de [c] cases vers le nord
  NORTH [c] : se déplacer de [c] cases vers le nord
  SOUTH [c] : se déplacer de [c] cases vers le sud
  SOUTH [c] : se déplacer de [c] cases vers le sud
  EAST [c] : se déplacer de [c] cases vers l'est
  EAST [c] : se déplacer de [c] cases vers l'est
  WEST [c] : se déplacer de [c] cases vers l'ouest
  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]
  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_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_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)
  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)
  DEFUSE : détruit toutes les bombes se trouvant sur votre case (impossible d'effectuer une action pendant 2 tours)


== Actions ==
== Actions ==
Ligne 139 : Ligne 139 :
Ces actions permetent de ce deplacer respectivement vers Y+ , Y- , X+ , X-
Ces actions permetent de ce deplacer respectivement vers Y+ , Y- , X+ , X-
Ce qui est illustrée ici :
Ce qui est illustrée ici :
                
                
                                
                                
Ligne 183 : Ligne 183 :
    La bombe explosera au tour donner en parametre. ainssi BOMB 42 , fera exploser la BOMBE au tour 42.
    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.
    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 :
STUDY_ FIREPOWER/SPEED/TIMER :
Ligne 210 : Ligne 210 :
# A-t-on le droit d'attaquer directement et autrement qu'avec les methodes definies par le jeu les adversaires?
# 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,
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,
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
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
# 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?
# (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.
En fait l'arbitre prend en compte la derniere action envoyer. Qu'elle sois valide ou non.
Ligne 228 : Ligne 228 :
            
            
                 Par exemple :
                 Par exemple :
                 Avec un bot à 3 points de Timer, on pourra choisir de faire exploser notre bombe jusqu'à 3 tours plus tard.
                 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
                 Soit au tour 10, l'envois de 'BOMB' sera valide de 11 à 13

Dernière version du 1 décembre 2023 à 17:43

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