GPL v3    
5.0/5 1
A version of the Reversi board game intended for casual play




Reversi is an implementation of the popular Reversi board game, for use by one or two players. Some simple AI is included to provide a computer opponent, and if you are feeling lazy you can watch while two AI opponents slug it out.

Installation (Linux):

1. Unzip the tar.gz somewhere.

2. In a console window navigate to the Reversi-1.0 directory and run the following command as root (on Ubuntu/Debian use sudo):

 [sudo] python3 install

3. On Ubuntu a desktop launcher is installed, which you should be able to find in the Dash and drag to the launcher bar.

Preparation Controls:


 A selection box appears to enable the player to choose their preferred language.

 If no language is selected the game will default to English.
 Your name:
 You can type anything you like here, it just helps to distinguish the players.

 Four modes are supported:

 Normal (human versus computer opponent).

 Person versus Person, in 'hot-seat' mode.

 Computer versus computer, what I like to call TV mode.

 Benchmarking mode, all graphics turned off. In this mode additional information is requested for the number of games to play.

 The default mode is 'Normal'.
 The game asks the first player to choose a token, Black or White. Click your choice or type 'b' or 'w', depending on UI (see below).

Game Play Controls:

Who starts is chosen at random.

 Choose Tile:
 Depending on UI this is achieved by either clicking on the appropriate tile, or typing in the tile coordinates as a space-separated pair of numbers, e.g., 5 6
 A hint mode is provided for each (human) player that can be toggled by either typing 'h' or clicking the appropriate button, depending on the UI you are using.
 Typing 'q', hitting 'Esc' and/or clicking the 'Close Window' icon (the details depend on the UI) causes the current game to be aborted.
 Play Again:

 You can elect to play again as many times as you want. The more games you play, your game statistics will be accumulated and displayed on the scoreboard.

 At the time of writing, there is no mechanism for storing game statistics between sessions, so if you want to save your high-scores you will have to resort to a screen-shot!

Choice of UI: Console vs. Tkinter/ttk

The game has been shipped 'hard-wired' for the tkinter/ttk interface. For most purposes this is (I believe) a nice and easy interface to use. However, particularly if you want to do a lot of bench-testing of different AI, you may wish to use the console interface instead. This is very easy do in the source code, just un-comment the console interface and comment the tkinter interface in the heading of the ui module.

An older version of the game also had a pygame interface, but this has been removed in the shipped version. There are several reasons for this:

- At the time of writing, installing pygame for Python 3 is still something of a black art. It was felt that the difficulty of installing pygame outweighs any advantages of using it for a simple board game for end users.

- Removing the pygame interface makes the packaging simpler (OK, so I'm lazy).

- For a board game, the sophisticated handling of sprites (pygame's great strength) is not required. Tkinter/ttk offers instead a very good set of themed widgets with excellent hooks for callouts, making the ui very easy to write, and much nicer to use, than is possible with the graphics of pygame.

- At the time of writing, pygame does not support unicode. This means that i18n with languages like, for example, Chinese, is not possible in a pygame interface using the Python i18n package. You just end up with a load of rectangular boxes on the screen. i18n with pygame is still possible, but it would require a lot of code, and the use of a lot of graphic images instead of text. As noted above, I am lazy.

- Why, in this day and age, is software being written that does not support unicode (expecially when that is one of the strengths of the language it is written in)?
Last updated on August 18th, 2012

0 User reviews so far.