Code Monkey home page Code Monkey logo

tic-tac-toe-simple's Introduction

Tic-Tac-Toe Simple

CodeGame Version CGE Version

A simple implementation of tic-tac-toe for CodeGame.

This game is ideal for familiarizing yourself with CodeGame.

Known instances

  • games.code-game.org/tic-tac-toe-simple

Usage

# Run on default port 8080
tic-tac-toe-simple

# Specify a custom port
tic-tac-toe-simple --port=5000

## Specify a custom port through an environment variable
CG_PORT=5000 tic-tac-toe-simple

Running with Docker

Prerequisites:

# Download image
docker pull codegameproject/tic-tac-toe-simple:0.3

# Run container
docker run -d --restart on-failure -p <port-on-host-machine>:8080 --name tic-tac-toe-simple codegameproject/tic-tac-toe-simple:0.3

Event Flow

  1. You receive a start event when a second player joins, which includes your sign ('x' or 'o').
  2. You regularly receive a board event, which includes the current state of the board.
  3. You receive a turn event, which includes the next sign to be placed.
  4. When it is your turn you can send a mark event with the row and the columnn (zero based), which should be marked with your sign.
  5. When the game is complete you will receive a game_over event, which includes which player wins and which fields form the winning row. Otherwise go to 3.
  6. You will receive an invalid_action event when you try to do something that's not allowed like marking an already marked field.

Building

Prerequisites

  • Go 1.18+
git clone https://github.com/code-game-project/tic-tac-toe-simple.git
cd tic-tac-toe-simple
codegame build

License

Copyright (C) 2022-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/.

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.