Proposing a new multiplayer contest

I create this topic to discuss a possible ruleset for mutliplayer contests. I believe the rules proposed in the topic are well suited to this website : easy solutions exist for beginners, and experiences programmers may try to implement more complex solutions.

As I started to write the ruleset in french, you will find the both the original and translated versions in the topic.

I have attached some illustrations in this google presentation : illustrations

VERSION FRANCAISE (find the english version below)

Proposition de règles pour un défi multi-joueur à venir (type “The Great Escape” et “Platinum Rift”)

Inspiration : C’est un mélange du jeu de société “Labyrinthe” (Ravensburger) pour les enfants et de “Pac-Man”

Nombre de joueurs : de 2 à 4

Les pions de plusieurs joueurs se déplacent de case en case dans un labyrinthe. A chaque fois qu’une case est atteinte pour la première fois par un joueur, ce dernier gagne un point. Une difficulté cependant : le labyrinthe est mobile ! Le plateau de jeu est constitué d’un ensemble de cartes carrées positionnées sur un quadrillage. Chaque carte indique la présence de murs ou de passages vers les cartes voisines. Les lignes et les colonnes de ce quadrillage peuvent être poussées dans une direction ou dans une autre. Lorsqu’une ligne ou une colonne est poussée, une carte à l’extrémité est poussée hors du plateau de jeu. Elle est automatiquement repositionnée de l’autre côté de la ligne ou de la colonne, là où il y a un espace vide.

Chacun à leur tour les joueurs peuvent choisir d’effectuer deux actions parmi :

  • Déplacer son pion vers une case voisine
  • Pousser une ligne ou une colonne du plateau de jeu pour modifier l’état du labyrinthe.

Les joueurs ne peuvent déplacer leur pion dans une direction donnée que si la case sur laquelle ils se trouvent dispose d’un chemin dans cette direction ET la case sur laquelle ils souhaitent aller peut les recevoir depuis cette direction.

Les joueurs ne peuvent pousser une ligne ou une colonne que si aucun pion adverse ne se trouve sur cette ligne ou cette colonne.

Chaque joueur marque un point lorsqu’il est le premier à atteindre une case n’ayant jamais été explorée auparavant.

La partie se joue sur un plateau de 8x8.

Chaque case est codée avec un numéro : (don’t forget to look at the illustrations (link))


Numéro    Passages dans la case


1    Gauche / Haut
2    Haut / Droite
3    Droite / Bas
4    Bas / Gauche

5    Gauche / Droite
6    Haut / Bas

7    Gauche / Haut / Droite
8    Haut / Droite / Bas
9    Droite / Bas / Gauche
10    Bas / Gauche / Haut

11    Toutes directions


Entrées du programme avant le premier tour de jeu :
    Etat initial du labyrinthe :
        Ligne 1 : case1 case2 case3 … case8
        Ligne 2 : case1 case2 case3 … case8
        …
        Ligne 8 : case1 case2 case3 … case8
    Etat initial des joueurs:
        Nombre de joueurs et coordonnées de départ

Entrées du programme à chaque tour de jeu :
    Numéro_de_l’adversaire Action1_du_joueur (MOVE DIRECTION ou PUSH LINE/COL DIRECTION ou PASS)
    Numéro_de_l’adversaire Action2_du_joueur (MOVE DIRECTION ou PUSH LINE/COL DIRECTION ou PASS)

Sorties du programme à chaque tour de jeu :
    MOVE DIRECTION ou PUSH LINE/COL DIRECTION ou PASS
    MOVE DIRECTION ou PUSH LINE/COL DIRECTION ou PASS

Critère définissant la fin de partie :

  • Toutes les cases ont été explorées
  • Pas de nouvelle case explorée depuis 50 tours
  • Nombre de tours > 200

Elements restant à travailler :

  • Il faut être le premier à atteindre une case pour marquer un point. Une “case” doit elle être définie comme une “carte” du labyrinthe, qui peut être déplacée dans une direction ou dans une autre ? Ou une case doit elle est définie comme des coordonnées (x,y) à atteindre ?

  • Le jeu peut théoriquement atteindre un état d’équilibre où deux joueurs poussent chacun la même ligne dans une direction opposée. La partie pourrait ainsi être bloquée et ne jamais se terminer. Que peut on ajouter comme protection pour éviter un blocage de la partie ? Je pense par exemple au mécanisme suivant : un joueur ne peut pas pousser deux lignes ou colonnes sur le même tour. Ce mécanisme impose au moins un déplacement qui rend plus difficile le blocage de la partie.

  • Contrairement à Platinum Rift, les joueurs jouent les uns après les autres. Contrairement à The Great Escape, l’issue de la partie dépendra beaucoup de la disposition de départ. Ceci fait que les résultats d’un seul match peuvent être un peu aléatoire. Il est nécessaire de modifier l’ancien système de classement pour donner un poids équivalent à tous les matchs joués.


##  ENGLISH VERSION

Ruleset proposal for any upcoming muliplayer challenge (similar to “The great escape” and “Platinum Rift”)

The ruleset is inspired from the famous Boardgame “Labyrinthe” (Ravensburger), along with the computer game “Pac-Man”.

Number of players : 2 to 4

Each player has a pawn moved from tile to tile inside a maze. Whenever a tile is visited for the first time, the player gains 1 point. The interesting thing about this game is that the maze would constantly evolve.

The board is made of a 8x8 grid. A card is placed on each vertex of the grid. Each card indicates the presence of walls or openings to the neighbouring cards.

On this grid, the lines and columns can be pushed in a direction or another. Whenever a line is pushed, a card will fall off the grid. It is repositionned on the other side of the line, where an opening was left.

In turn, every player can choose to make _two actions between the following:

  • Move a pawn to a neighbouring tile
  • Push a line or a column on the board to change the shape of the maze.

The players may only move their pawn in a direction if the current tile and the destination tiles allow it.

The players may only move a line or a column if no pawn is on that line or column.

The player gains one point if he is the first to visit a tile/vertex.

The game is played on a 8x8 board.

Different tile types are described with a number:  (don’t forget to look at the illustrations (link) )


Number    Openings


1    Left / Up
2    Up / Right
3    Right / Bottom
4    Bottom / Left

5    Left / Right
6    Up / Bottom

7    Left / Up / Right
8    Up / Right / Bottom
9    Right / Bottom / Left
10    Bottom / Left / Up

11    All directions


Program input before beginning:
    Initial state of the maze:
        Line 1: tile1 tile2 tile3 … tile8
        Line 2: tile1 tile2 tile3 … tile8
        …
        Line 8: tile1 tile2 tile3 … tile8
    Initial state of players:
        Number of players and starting position

Program input for each turn:
    Player_number Player_1st_action (MOVE DIRECTION or PUSH LINE/COL DIRECTION or PASS)
    Player_number Player_2nd_action (MOVE DIRECTION or PUSH LINE/COL DIRECTION or PASS)

Program output for each turn
    (MOVE DIRECTION or PUSH LINE/COL DIRECTION or PASS)
    (MOVE DIRECTION or PUSH LINE/COL DIRECTION or PASS)

The end of the game is defined by:

  • Every tile has been explored
  • No new tile was explored in the last 50 turns
  • 200 turns have passed

Elements that need to be precised:

  • A player should be the first to visit a vertex to gain one point. Should the tile be defined as the tile (which may move around the board with the lines/columns being pushed), or the (x,y) coordinates ?

  • The game can be blocked if both players repeatitively push the same line in opposite directions. How can we counteract such a situation ? I’m thinking that a rule could be added to prevent players from pushing two lines/columns during their turn. This ensures that at least one pawn moves, which should make the situation evolve a little bit each turn ?

  • Contrary to Platinum Rift, players will play one after the other. (not simultaneously). Contrary to The Great Escape, the starting positions may have a big effect on who wins the match. Even a very good AI may lose if placed in an unlucky starting position. The current ranking system should be modified to give similar weight to all games played.

8 Likes

Hi pb4608,

This is very interesting and I was actually thinking about a similar game but my thoughts were not as advanced as yours (I was also wondering if we could rotate the tiles instead of moving them).

I think you should also forbid to move a line/column in the opposite direction. And I’m not sure it’s enough to avoid cycles. We need to be careful on that to avoid boring games.

Anyway, that’s a game I would be happy to play with, I think it deserves to be experimented at least to see if it’s really fun to develop an advanced AI.

Wow, pretty detailed and interesting, maybe we’ll get some feedback from CG team :smiley:

I’d also like to make a proposal. Some of you might know the pen and pencil game “Racetrack

What do you think about implementing it for CodinGame?

3 Likes