This repository contains the final project for the Software Development Methods 2020/21 course at University of Trieste.
The goal of the project is to implement a board game called Chaos and Order, which was invented by Stephen Sniderman and introduced by him in Games magazine in 1981.
Source: Wikipedia
The game is a variation of the more known Tic Tac Toe game and it is played on a 6x6 board. The two rivals are named Chaos and Order and they play turns alternatively. On each turn, a player has to pick a Cross or a Circle and is free to put it on an empty cell. Order's purpose is to make a quintuple of equal signs, regardless the direction (namely vertically, horizontally and diagonally), while Chaos has to prevent it, until the board is filled and no further moves are available. Order moves first.
The game can be played both from a Command Line Interface (CLI) or a Graphical User Interface (GUI).
To start it, move to the directory where you have cloned the repository and run:
./gradlew jar
java -jar ./build/libs/ChaosAndOrder-1.0.jar [OPTION]
where [OPTION]
can be:
-cli
for the Command Line Interface-gui
for the Graphical User Interface
If you want a portable version of the game you can run ./gradlew distZip
, which will produce your zip archive in ./build/distributions
.
Moves are given in the format ColumnRow Symbol
, where the Column can be chosen among [A,F], the Row among [1,6] and the Symbol between [X,O] (e.g. A5 X, E2 O). The game is not case sensitive and extra empty spaces are handled too.
To play your turn pick a symbol by clicking on a Circle or a Cross on top right corner and put it on the board by clicking on an empty cell. Player's turn is displayed on left corner so you can not mess up.
The application panel might be useful if:
- you want to start a new game File > New Game
- you want to exit File > Exit
- you forgot about the rules Help > Read Instructions
- you are wondering who made this game Help > About
To switch to the Dark Mode go to File > Themes > Dark Mode.
Some new features might be added in a next release. Some of them are:
- Portability πΌ
- Light mode βοΈ / Dark mode π
- Support for more langauges π
- Multiplayer (Client/Server) π¨βπ¨βπ§βπ¦
If you want to contribute in the implementation or you have any other idea for a next release feel free to fork and / or contact us.