A famous strategy game for the Ti-89 with a good AI, written in C and compiled with TI-GCC, using the libraries by Zeljko Juric.
Release 2.5, 05-12-2000.
Copyright 2000-2001 by François LEIBER.
This program and its source code can be freely distributed, on condition that you keep them together and that join this text unmodified with.
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!
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), 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 re-work on it in a future release.
At the beginning or when you press ESC while playing:
In the option menu:
During the game:
And at any moment :
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 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.
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.5 - 12/05/01 - 19 335 bytes (42 KB uncompressed)
Anniversary.3 Release - 23-04-01 - 18 635 bytes (41 KB uncompressed)
Anniversary.2 Release - 15-03-01 - 18 632 bytes (41 KB uncompressed)
Anniversary.1 Release - 02-27-01 - 18 779 bytes (42 KB uncompressed)
Anniversary Release - 02-15-01 - 18 520 bytes (34 KB uncompressed)
v2.1 - 01-27-01 - 23 415 bytes
v2.1 b1 - 01-27-01 - 23 739 bytes
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.46-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.41-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 Tigcc'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.3b2 - 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.3b - 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.
v0.1b - 02-15-00 - 9 541 bytes
My first program in C, one week of fierce work for a very passable result :-)
Info:
I know my translation of this text is far from good, but I've already made quite an effort to do it, so be comprehensive, I'm French :-)
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/
Now that I've begun C programming, I think I'm going to make many other programs, but unfortunately I lack time (studies are becoming quite invasive).
Anyway, I encourage warmly all those who would like to start C programming but who hesitate, and that's why my source code is given in this package.