********************************************************




by François LEIBER

http://leiber.free.fr


Description


A famous strategy game for the Ti-89 with a good AI, nice graphics, written in C and compiled with TI-GCC.


Version 2.53, 04 - 02 - 2004
Copyright 2000-2004 by François LEIBER

This program is distributed under the GPL license, for further information please refer to the GPL.txt or http://www.gnu.org/licenses/licenses.html#GPL.

Summary


  1. Requirements
  2. Features
  3. Keys
  4. Rules
  5. History
  6. Credits
  7. Info

Requirements


  • A Ti-89, a Ti-92+ or a Voyager 200, with any ROM installed, no kernel is required.

  • The program othello2 (launcher) and oth1data (data compressed with the Exepack technology of the TIGCC Tool Suite), 20.3 KB.

  • A few KB free to start the game.

You can put both variables in any folder, but it has to be in the same (you also have to be in that folder to launch Othello II). I suggest you archive them to save space in RAM.

Features

As a matter of fact, some people maybe already know my TI-BASIC version of Othello, but I was fed up with the BASIC's limitations. So, as soon as I saw that Zeljko Juric had documented many TIOS functions, I started programming in C, and I don't regret it!

  • A game between two humans, or human-89, or 89-89.

  • Many different and progressive thinking levels:
    1. Stupid: reflection is totally random!
    2. Bad: reflection 0.2 second long.
    3. Novice: reflection 0.5 second long.
    4. Medium: reflection 1 second long.
    5. Correct: reflection 2 seconds long.
    6. Good: reflection 5 seconds long.
    7. Strong: reflection 15 seconds long.
    8. Expert: reflection 30 seconds long.

The reflection engine is adapted from THOR 3.4, an Othello game by Sylvain Quin. Even though it examines fewer positions than my old engine (it looked more than 2500 positions per second in the midgame compared to 500 now), it is quite strong, and reflection level is only determined by the timer. I have to admit that it was hard for me to abandon the engine I had been working on for almost a year, but I couldn't manage to make it really strong. I will maybe re-work on it in a future release.

  • Opening library, presently 256 lines for more than 4 000 moves.

  • Possibility to take as many moves as you want, and also to undo you take backs.

  • Possibility to have some sound, if you have a buzzer.

  • Automatic game saving when quitting.
    Othello creates a little hidden variable in main folder, called oth2sav, storing the program's options and the saved game.

  • A "teacher key".


Keys


At the beginning or when you press ESC while playing:

  • ENTER or APPS (on 89) to select an item of the menu.
  • ESC to quit or to resume current game.

In the option menu:

  • Vertical arrows to go from one player to the other.
  • Horizontal arrows to change the player's level.
  • O to enable/disable the sound.
  • M to enable/disable the markings (points to show you where you can play).
  • 3 to enable/disable the 3D rotating discs mode.
  • L to enable/disable the use of opening books.
  • ENTER or APPS (on 89) or ESC to come back to the last menu.

During the game:

  • Arrows to move the cursor.
  • ENTER or APPS (on 89) to place a disc at the cursor's place.
  • PLUS to move the cursor to the next case where you can play.
  • <- to take one move back, or two if you're playing 89-human. This key works even when the game is finished.
  • CATALOG (= on 92+) to undo take back.
  • F1 to show statistics of the last Ti's reflection.
  • ESC to have access to the main menu where you can quit, start a new game or change the options. Press ESC or 'Resume' to resume the game.

And at any moment :

  • ( and ) to change the contrast.
  • CLEAR to turn the calculator off, can be very useful ;-)

The last key is also usable while the calculator thinks.

Rules


Othello is strategy game for two players (blacks and whites), who place alternatively a disc of their color on an 8x8 board. Blacks begin.

The goal is to have at the end of the game (when the board is full or that no player has a valid move), more discs of your color than your opponent. If both players have the same number of discs at the end, they are declared tie.

To capture discs, you must place your disc so opponent discs are placed between this one and other of your discs (it can be done on a row, a column or a diagonal). These discs will be captured and will become yours (they change color).

You can place only one disc at each turn, and this disc has to capture at least one of your opponent's.
A dot one the top left corner of a case tells you if you can play in this case (except if you disabled the markings).
If you don't have a valid move to play, the calculator will warn you that you must pass your turn.

When the 89 is thinking, a horizontal line at the bottom of a case indicates what was the last move.

To have a more precise outline of this game and of its stategy, read this introduction to Othello.


History

v2.53 - 04/02/04 - 19 404 octets (42 KB uncompressed)
  • Now distributed under the GPL license!
  • Compilation with TI-GCC 0.95b6.
  • New presentation for the documentation.
  • TI-89 Titanium supported!

v2.5 - 12/05/01 - 19 335 bytes (42 KB uncompressed)

  • Possibility to have some sound (I've auto-pirated Flib's source ;-), but it's still not perfect, especially on HW2 (due to gray levels).
  • Speeded up the graphical part (you can see it in stupid-stupid games), notably by programming myself some sprite functions.
  • Solved all the message problems, mostly when you took your move back when the game was finished (Liquid wins the dollar).
  • Fixed the game loading, changed the save format for more security.
  • The contrast can now be changed at any moment with the parenthesis keys.
  • Finaly, several details that will remain unnoticed...

Anniversary.3 Release - 23-04-01 - 18 635 bytes (41 KB uncompressed)

  • Fixed all the keyboard problems : it was the timer interrupt (and not even the timers themselves, it's so vicious) who was interfering with my keyboard routine. Well, now I don't use timers any more, except during the reflection : disc rotation speed and APD (now fixed to about 3 minutes) are now adjusted manually.
  • Fixed a few 'bounce' problems with the ESC key.

Anniversary.2 Release - 15-03-01 - 18 632 bytes (41 KB uncompressed)

  • I totally re-wrote the keyboard sub-routines, so I could disable all the unnecessary interrupts and speed up the engine by 15 %. Moreover, I find the keyboard more responsive and agreeable now.
  • CLEAR is now again usable during reflection.
  • There was ONE bug, and I found it: in some cases, the move back didn't work right in human/ti mode, it's fixed now.
  • Fixed all the keyboard problems for the 92+ version, but it still has a 89 interface.
  • Added an introduction to Othello. by Emmanuel Lazard.
  • Compiled using the new beta-release of TI-GCC.

Anniversary.1 Release - 02-27-01 - 18 779 bytes (42 KB uncompressed)

  • Now, the calculator picks up a random opening instead of playing always the same way.
  • Slightly changed the reflection's coefficients (they will be personalisable in next release).
  • The calculator disps a message when it is certain to win.
  • The nod counter now displays in round figures (more aesthetic) and counts correctly the nods in the endgame.
  • A few fixes : corrected use of key '+', the calculator now underlines properly the last move, and one or to more details.
  • I renew the prize of 1$ for the first person who'll notice me of the least little bug...

Anniversary Release - 02-15-01 - 18 520 bytes (34 KB uncompressed)

  • This day last year, I released the first version of Othello II ! This new version is here to celebrate this anniversary.
  • Now use of opening books, presently 256 lines for more than 4 000 moves.
  • I've adapted a more recent reflection engine of THOR, release 3.4, sent to me by its author Sylvain Quin.
  • Now in nostub mode, and the program is compressed using the Exepack technology of the TIGCC Tool Suite, thanks to Thomas Nussbaumer and Marco Lopez.
  • Support of new flicker-less gray levels for HW2.
  • Nice introduction picture, thanks to TATMF.
  • Possibility to undo a take-back, and correction of the take-back option, possibility to take back even when the game is finished.
  • A few other little things, I
  • David Teitlebaum wins 1 $ for being the first (and the only) person to report a potential bug in release 2.1...

v2.1 - 01-27-01 - 23 415 bytes

  • I've corrected all the little forgettings and bugs of the previous release, I'm ready to give 1$ (!) to the first one who finds the least little bug !
  • I've decreased the thinking time to make the reflection level reasonable, and you can now access to statistics of the Ti's reflection by pressing F1.
  • And finally, I'm proud to present the source code, very neat I think.

v2.1 beta - 01-27-01 - 23 739 bytes

  • Finally ! I've passed to version 2.1, even though the version 2.0 never reached its final stage.
  • I've totally re-written the source code, to make it cleaner, reduce size of the program, and above all to make it very easily adaptable to any platform.
  • I've adapted the reflection engine of THOR 2.1, an Othello program by Sylvain Quin; the program is now very strong, and the thinking time is only determined by the timer. There is no looser mode any more.
  • But since the source is still a little limping and still minor problems are left, a more finished version is soon to arrive. So I haven't included the source in this release, the previous one can be found on my web page.

v2.0 b4 - 10-21-00 - 17 323 bytes

Now that the interface is correct, I've worked a little on the reflection engine : 30% faster. So I've added a harder level, and changed the names of the other.

v2.0 b3 - 10-01-00 - 17 620 bytes

I've recompiled the program with the new release of Zeljko Juric's libraries, so the gray levels should less flicker on HW2. I've also modified the reflection's coefficients, and now APPS does the same thing as ENTER, so you don't have to stretch you fingers any more.

v2.0 b2 - 09-20-00 - 17 205 bytes

I've corrected all the little bugs and forgettings of the previous release.

v2.0 b1 - 07-17-00 - 16 913 bytes

Finally ! It was a long time since I wished to change the interface, and it is only at the release of Ti-Chess 3.01 - when I saw their terrific graphics - that I found the courage to start the work. So I have totally re-drawn the interface, and integrated gray levels everywhere.
The previous release was incompatible with ROM 2.04 and 2.05, I discovered that a TIOS function (for the timers, to be precise), had been changed, so I had to reprogram all the keyboard sub-routines; there is no more auto-repeat, but apd is enabled, and the CLEAR key is available everywhere.
Finally, I corrected an old bug in the take-back function, and I translated the whole documentation in html.

v1.47 - 07-24-00 - 13 769 bytes

I added a counter of the number of moves examined by the 89. It is refreshed during the reflection, as well as 'eval'.
Added a 92+ version.

v1.45 - 06-10-00 - 13 389 bytes

You can now go as many moves back as you want, the reflection is slightly improved and well speeded up, and I've cleaned and separated the source in several files, thanks to TI-GCC's IDE.

v1.4 - 04-09-00 - 13 037 bytes

It's finally beginning to look like what I had imagined when I started this program : I've added gray levels in the (new) starting menu, several options, an info page, speeded up the engine and cleaned my source so people who are interested can look at it.

v1.32 - 03-25-00 - 11 890 bytes

I hadn't looked at my program for several days because I was programming flib. Anyway, I felt worried because I knew Othello II was still buggy, but I understood where the error was while doing Flib. Consequence: a smaller program who works with all existing kernels, and who never crashes !

v1.31 - 03-11-00 - 12 325 bytes

I have finally found the stupid bug that caused my game to crash often at the beginning! Sorry for all those who had to reset when testing release 1.3 :-(

v1.3 - 03-08-00 - 12 476 bytes

Doors mode, two minor bugs fixed, pretty reflection bar, reflection made much better with mobility, English translation, a few general improvements.

v1.2 - 02-20-00 - 12 383 bytes

Possibility to load a saved game, a starting menu much prettier with rotating discs, many general improvements.

v1.1 - 02-17-00 - 11 387 bytes

Most functionalities are now finished, but the starting menu is still quite dirty.

v1.0 - 02-15-00 - 9 541 bytes

My first program in C, one week of fierce work for a very passable result :-)

Credits

  • Sylvain Quin for his program THOR 3.4, from which I have adapted my new reflection engine.

  • Emmanuel Lazard for his text on Othello, and for the translator Colin Springer.

  • A huge thank to the TI-GCC team, and particularly to Zeljko Juric for his libraries and his very complete documentation of the different TIOS functions, without them nothing would have been possible.

  • Rusty Wagner for Virtual Ti.

  • A special mention to Mads Brevik for his game Star Wars Othello that I have always admired for his playing strength, but also for his advices.

  • Thomas Nussbaumer and Marco Lopez for Ti-Chess, from which I have taken two assembly procedures, and for porting the Exepack technology to TI-GCC.


Info

For any suggestion, commentary or bug (that would be quite surprising ;-) ), you can e-mail me at:

Francois.leiber@laposte.net

All ideas are welcome!

All my program updates are first on my (French) web page:

http://leiber.free.fr/

I encourage warmly all those who would like to start C programming but who hesitate, and that's why Othello II is open-source!
This program is distributed under the GPL license, wich means for example that you have the right to change the source code and distibute a modified version, but only if you respect the differents points of the license.


Back to the top of the page