Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cenkyyy/mills

This game was created during the summer semester of 2023/24 as part of my studies at Charles University, as a credit program for Programming II.
https://github.com/cenkyyy/mills

alpha-beta-pruning board-game csharp windows-forms

Last synced: 6 days ago
JSON representation

This game was created during the summer semester of 2023/24 as part of my studies at Charles University, as a credit program for Programming II.

Awesome Lists containing this project

README

        

# Mills

## Game description

#### What is Mills?
Mills is a strategy board game for two players. The game has many variations, such as **Three men's morris**, **Six men's morris**, **Nine men's morris**, **Twelve men's morris** or **Lasker morrris (Ten men's morris)**. Three main variations of the game are three, six, and nine men's morris, which are also the variations I've decided to implement. Each variation has its own board, consisting of different number of **men (pieces)** and number of **intersections (points)**.

#### Description of the Three main variations
1. Three men's morris (TMM) - consists of a grid with 9 intersections, or points. Each player has 3 men. Mills can be also formed diagonally.

Three Men's Morris

2. Six men's morris (SMM) - consists of grid with 16 intersections, or points. Each player has 6 men.

Six Men's Morris

3. Nine men's morris (NMM) - consists of grid with 24 intersections, or points. Each player has 9 men.

Nine Men's Morris

#### How to win
- Players try to form **_mills_** — three of their own men lined horizontally, vertically, or sometimes diagonally — allowing a player to remove an opponent's man from the game.

- When a **_mill_** is formed, the player who formed it can only remove other team's men that aren't currently forming mills, unless there are no other options left.

- A player wins by reducing the opponent to two men, as they can no longer form mills and thus are unable to win or when a player blocks all possible moves for the opponent, as they can no longer make a move.

- There is also a possibility that **two** mills can be formed **at the same time**, if that happens, the player who formed the mills can remove **two** of the other team's men (only in PvP gamemode).

#### Game phases
- Phase 1 - **Placing phase** - players place their men from their bench onto the board. Once all of the bench men have been placed, Phase 2 begins.

- Phase 2 - **Moving phase** - players move their men around the board to adjacent points to form mills and remove opponent's men.

- Phase 3 - **Flying phase** - once a team's number of men reaches 3, they can move their men to any free space on the board.

---
### Required installations

The program does not require any external libraries to be downloaded. However, to start the program via the command line, you must have the .NET SDK installed. If it's not already installed, you can download and install it by following the instructions on the .NET website.

---
### How to start the program?

1. Open a terminal or command prompt.
2. Navigate to the directory containing the Mills game’s `.csproj` file.
3. run `dotnet run` command

---
### Possible improvements

Although I'm quite happy how the program turned out, there is always room for improvement. There are still many variations of the game, rules, and phases which can be implemented. One possible improvement could be adding a completely new game variation, such as twelve men's morris or tens men's morris. Another improvement could be adding threefold repetition to not repeat the same moves three times.

---
### Author
Oliver Tomáš Cenker

### Event
This game was created during the summer semester of 2023/24 as part of my studies at Charles University, as a credit program for Programming II.

---
### For more information, check [user manual](docs/user%20manual.md) or [program manual](docs/program%20manual.md).
---