Drop colored discs into a grid. You win when you manage to form a horizontal, vertical or diagonal line of four discs.
games.code-game.org/connect-four
# Run on default port 8080
connect-four
# Specify a custom port
connect-four --port=5000
# Specify a custom port through an environment variable
CG_PORT=5000 connect-four
Prerequisites:
# Download image
docker pull codegameproject/connect-four:0.1
# Run container
docker run -d --restart on-failure -p <port-on-host-machine>:8080 --name connect-four codegameproject/connect-four:0.1
- You receive a
start
event when a second player joins, which includes your color ('a' or 'b'). - You regularly receive a
grid
event, which includes the current state of the grid. - You receive a
turn
event, which includes the next sign to be placed. - When it is your turn you can send a
drop_disc
command with the column in which you want to drop your disc. - When the game is complete you will receive a
game_over
event, which includes which player wins and which cells form the winning line. Otherwise go to 3. - You will receive an
invalid_action
event, if you try to do something that's not allowed like dropping a disc when it is not your turn.
Rule variations can be selected by setting the variation
config option.
- You can send a
pop_out
command instead of adrop_disc
command to remove a disc of your own color from the bottom of the grid.
- Go 1.19+
git clone https://github.com/code-game-project/connect-four.git
cd connect-four
codegame build
Copyright (C) 2023 Julian Hofmann
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.