Skip to content

Othello/Reversi Game in Python3, equipped with GUI + AI Player, made using pygame.

License

Notifications You must be signed in to change notification settings

TERNION-1121/Othello-Reversi-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚫ Othello/Reversi ⚪

A GUI-equipped, Othello/Reversi game made in Python3 using the pygame library. Featuring two-player as well as Play with Computer modes.

📜 Description

Othello is a board-game played on a 8x8 board, with 64 discs that are black on one side and white on the other. Each player gets 32 such discs, out of which 2 from each player are kept on the board in the following manner:

image


A move consists of "outflanking" your opponent's disc(s), then flipping the "outflanked" disc(s) to your color. To outflank means, if your disc is kept on square X, and you have another disc on square Y, such that:

  • X and Y lie on the same row, or
  • X and Y lie on the same column, or
  • X and Y lie on the same diagonal,

If any one (or more) of the above is the case while playing, then the Opponent's discs between X and Y get flipped to your color.


Example:

Here White disc A was already present on the board, after placing White disc B, the row of Black discs between White disc A and B got outflanked,

06a8330dc692b7631a2e50660e4a7346

And thus the outflanked Black discs flipped to White.

cd51ed676fb49538035a8bf006ffbe96

For a more comprehensive explanation of the game rules, check out this link.

The "Why" of the project

It had been a long time since I had coded in Python, and I got reminded of Othello out of the blue. Thus I implemented the game in Python. This not only got my pygame GUI skills freshen up, but it also was a great experience to design the board elements myself.

P.S. If you have got any suggestions/features to add, whether it's about the two-player gameplay, or about the Othello AI itself, I would be more than grateful to you for your contribution!


🎯 Game Modes

⚔ Two-Player Mode

Two players can play the game, alternating their turns.

🤖 Play with Computer

Play with the computer! It makes use of the minimax algorithm with alpha-beta pruning.

Currently the algorithm makes use of the following heuristics for a position's evaluation:

  • Coin parity
  • Mobility
  • Corner Values

Thanks to @Zhe Xun for their help in improving the A.I Player's minimax algorithm!

How to Play the Game 🎮

  1. Download the source code. (Either clone the repository or download the whole code from GitHub)
  2. Make sure to install Python3 on your Computer along with pip. (Python3.10+ is required)
  3. Open your terminal, navigate to ~/Othello-Reversi-Game and type the command:
    pip install -r requirements
    
  4. Navigate to the src directory, run the main.py file and play the game!

P.S. You can change color modes using the 'L' key!