Skip to content

RutledgePaulV/reversi-ai

Repository files navigation

#Reversi (Othello) Strategy Explorer

##Purpose The purpose of this program is to explore strategies for the game of reversi (more popularly known by the brand name Othello). Reversi is a game played between two players which has a very large game tree of all positions (somewhere around 1028 positions). Since the game tree would be so large, it is infeasible to find a complete strategy, therefore the game tree may be expanded and searched according to heuristic utility functions.

##GIF This is an animation of the actual program running. It consists of two computer players, white playing the greedy strategy and black playing a weighted strategy of 10 for corners, 4 for edges, and 1 for interior pieces.

##Notes The board structure makes use of numpy arrays for efficient and convenient indexing - as written all the code should be relatively efficient, straightforward, and extensible.

##Application Structure

  • enums.py

  • Contains an enumeration specifying the two possible colors that may be played

  • game.py

  • Contains the actual game logic that allows two players to progress through the game against one another.

  • graphics.py

  • This library graphics.py is a simple wrapper on TKinter

  • renderer.py

  • Sets up the window object and managed drawing a board / refreshing the current board in the window.

  • strategy.py

  • Contains the heuristic definitions to be used in navigating and expanding the game tree.

  • structures.py

  • This is the main content of this program as it handles the game board and pieces as well as the logic for determining a positions validity and making a move.

  • weightings.py

  • This is a helper class for generating particular weightings to be used with the weighted sum heuristic.

##Licensing Do what you want but let me know if you want to do something really cool and needs some helpz.

About

Explore and visualize various heuristics for game tree expansion within the game reversi.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages