Skip to content

Instantly share code, notes, and snippets.

@Ball-Man
Created April 20, 2023 14:11
Show Gist options
  • Save Ball-Man/30c5cad7b906910522b84c1741ad9268 to your computer and use it in GitHub Desktop.
Save Ball-Man/30c5cad7b906910522b84c1741ad9268 to your computer and use it in GitHub Desktop.
Corso game rules

Corso

The game of corso is a simple two player perfect information game. It is played on a N by N grid by placing marbles, the basic variant having N = 5.

The game was invented from scratch by me, but the rules are so simple that a similar game is likely to exist.

Motivation

The game is intended to be played as a secondary modality in the soon to be published videogame Lone Planet. For this reason, here are some requisites and design principles:

  • Game duration < 10 minutes: hence board size N=5 (or similar).
  • Game rules shall be as simple as possible, as the user (videogame player) shall not be constrained by the necessity to learn a very complicated ruleset.
  • AI: the game must come with an AI as it is shipped inside a single player videogame. Moreover, the AI should not just be good at winning, but also at losing. In particular, fine approximation of a game policy is desired as most of the mandatory opponents in the videogame shall be easy enough to beat, yet not random players. This is to prevent a secondary modality from becoming a roadblock in the game flow.

Overall complexity is estimated to be similar to a game of Othello/Reversi or Connect4.

Rules

Each player has one action per turn. The action can be placing a marble on an open cell or expanding an existing marble. It is not possible to expand the opponent's marbles. The goal of the game is controlling the highest number of cells.

placing marbles

Figure: player one (white) places a marble, then player two (gray) places a marble nearby.

Expansion of a marble results in the selected marble being lost. The cell containing the marble and adjacent cells (not diagonal) are dyed by the player's color. It is not possible to place marbles on dyed cells and they cannot be expanded anymore. Eventually they can be overridden by the opponent with nearby expansions.

expansion

Figure: continuing from the previous figure, player one (white) expands their marble. Then player two (gray) expands their one. Expansion of the gray marble overwrites some of white's cells.

Expansion leads to chain reactions with nearby marbles (not diagonal). A chain reaction will convert the entire result of the expansion into the color of the player causing it.

Example scenario 1: white_chain

Figure: game example, white's turn. White expands his marble, causing a chain reaction with gray's nearby one. As a result, all marbles are involved in the chain. The entire expansion is converted to white.

Example scenario 2: gray_chain

Figure: game example, gray's turn. Similarly to scenario 1, but this time gray causes the expansion by expanding one of their marbles. All involved marbles are expanded and converted to gray. The diagonal white marble is not involved.

Termination and winner

When all cells are occupied (either dyed or occupied by unexpanded marbles) the game ends immediately. A player's score is given by their number of controlled cells i.e. the total number of dyed cells and unexpanded marbles of their color currently on the board. The player with the highest score wins the game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment