GithubHelp home page GithubHelp logo

code-game-project / connect-four Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 33 KB

Connect 4 for CodeGame.

License: GNU Affero General Public License v3.0

Dockerfile 4.80% Go 95.20%
game connect-four go

connect-four's Introduction

Connect 4

CodeGame Version CGE Version

Drop colored discs into a grid. You win when you manage to form a horizontal, vertical or diagonal line of four discs.

Known instances

  • games.code-game.org/connect-four

Usage

# 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

Running with Docker

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

Event Flow

  1. You receive a start event when a second player joins, which includes your color ('a' or 'b').
  2. You regularly receive a grid event, which includes the current state of the grid.
  3. You receive a turn event, which includes the next sign to be placed.
  4. When it is your turn you can send a drop_disc command with the column in which you want to drop your disc.
  5. 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.
  6. 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

Rule variations can be selected by setting the variation config option.

Pop out

  • You can send a pop_out command instead of a drop_disc command to remove a disc of your own color from the bottom of the grid.

Building

Prerequisites

  • Go 1.19+
git clone https://github.com/code-game-project/connect-four.git
cd connect-four
codegame build

License

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/.

connect-four's People

Contributors

juho05 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.