https://github.com/code-game-project/tic-tac-toe-simple
A simple implementation of tic-tac-toe for CodeGame.
https://github.com/code-game-project/tic-tac-toe-simple
game go tic-tac-toe tic-tac-toe-simple
Last synced: 5 months ago
JSON representation
A simple implementation of tic-tac-toe for CodeGame.
- Host: GitHub
- URL: https://github.com/code-game-project/tic-tac-toe-simple
- Owner: code-game-project
- License: agpl-3.0
- Created: 2022-05-23T20:28:31.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-03T13:09:35.000Z (over 3 years ago)
- Last Synced: 2024-06-21T09:43:01.358Z (about 2 years ago)
- Topics: game, go, tic-tac-toe, tic-tac-toe-simple
- Language: Go
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tic-Tac-Toe Simple


A simple implementation of [tic-tac-toe](https://en.wikipedia.org/wiki/Tic-tac-toe) for [CodeGame](https://code-game.org).
This game is ideal for familiarizing yourself with CodeGame.
## Known instances
- `games.code-game.org/tic-tac-toe-simple`
## Usage
```sh
# 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:
- [Docker](https://docker.com/)
```sh
# Download image
docker pull codegameproject/tic-tac-toe-simple:0.3
# Run container
docker run -d --restart on-failure -p :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](https://go.dev) 1.18+
```sh
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 .