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