Un célèbre jeu de stratégie pour la Ti-89 avec une bonne IA et des graphismes évolués, programmé en C, compilé avec le compilateur TI-GCC, et utilisant les librairies par Zeljko Juric.
Ce programme et son source peuvent être distribués de manière complètement libre, à condition de les garder grouper et de joindre ce texte non modifié avec.
Version 2.5, 12/05/2001.
Copyright 2000-2001 par François LEIBER.
Vous pouvez mettre les deux fichiers dans n'importe quel répertoire, mais ils doivent être dans le même (d'ailleurs, vous devez être dans ce même répertoire pour lancer Othello II). Je vous conseille de les archiver, pour économiser de la mémoire vive.
Fonctionnalités :
En fait, certains connaissent peut-être déjà mon othello en basic, mais j'en avais marre des limitations monstrueuses du basic, donc dès que j'ai vu que Zeljko Juric avait documenté de nombreuses fonctions du TIOS pour le C, j'ai sauté sur l'occasion, et je ne le regrette pas !
Je ferais cependant remarquer que, dû à la lenteur du basic, la réflexion n'est pas très poussée et ne résistera pas à un joueur intelligent...
Evidemment, cette remarque n'est plus justifiée ici, et je pense maintenant que pour une vitesse correcte, mon programme peut donner du fil à retordre à un bon joueur d'othello.
Le moteur de réflexion est maintenant adapté du jeu THOR 3.4 par Sylvain Quin. A la différence de mon ancien moteur, la longueur de la réflexion dépend uniquement du timer, le nombre de coups par seconde est nettement moins élevé (j'avais atteint plus de 2500 coups par seconde en milieu de partie avec les dernières versions, contre 500 ici), mais le niveau global est bien meilleur. En fait, je dois avouer que cela m'a fendu le coeur de laisser tomber la réflexion auquelle je travaillais depuis un an, mais je n'arrivais pas à augmenter sérieusement le niveau, malgré mes interminables optimisations. Je reviendrai à cette réflexion dans une future version.
Touches :
Au démarrage ou lorsque vous appuyez sur ESC en cours de jeu :
Dans le menu options :
Au cours du jeu :
A tout moment :
Cette dernière touche est aussi accessible quand la calculatrice réfléchit.
Règles :
Othello est un jeu de réflexion pour deux joueurs (noirs et blancs), qui placent chacun leur tour un pion de leur couleur sur un terrain de 8x8 cases. Les noirs commencent.
Le but est d'avoir à la fin du jeu (quand le plateau est rempli ou qu'aucun des joueurs ne peut jouer) plus de pions de sa couleur que son adversaire. Si les joueurs ont un nombre égal de pions à la fin, ils sont déclarés ex aequo.
Pour capturer des pions, vous placez votre pion de telle manière que des pions adverses se trouvent pris entre lui et d'autres de vos pions, sur une rangée, ou une colonne, ou en diagonale. Ces pions seront retournés et changent de couleur.
Vous ne placez qu'un pion à chaque tour, et ce pion doit impérativement retourner au moins un de ceux de l'adversaire. Un petit point en haut à gauche d'une case vous indique si vous pouvez jouer à cet emplacement, sauf si vous avez désactivé le mode aide.
Si un joueur n'a aucun coup valide à jouer, il doit passer son tour.
Lorsque la 89 joue, un trait horizontal au bas d'une case indique le dernier coup joué.
Pour avoir un aperçu plus complet des règles et de la stratégie de base, lisez ce texte d'introduction à Othello.
Historique :
v2.5 - 12/05/01 - 19 335 octets (42 Ko non compressé)
Version Anniversaire.3 - 23/04/01 - 18 705 octets (41 Ko non compressé)
Version Anniversaire.2 - 13/03/01 - 18 703 octets (41 Ko non compressé)
Version Anniversaire.1 - 27/02/01 - 18 779 octets (beaucoup plus non compressé)
Version Anniversaire - 15/02/01 - 18 544 octets (34 Ko non compressé)
v2.1 - 03/02/01 - 23 501 octets
v2.1 b1 - 27/01/01 - 23 739 octets
v2.0 b4 - 21/10/00 - 17 399 octets
Maintenant que l'interface est potable, je me suis un peu remis à la réflexion : un gain de 30% en vitesse, donc un nouveau niveau plus fort (j'ai changé les noms de niveaux au passage).
v2.0 b3 - 01/10/00 - 17 621 octets
J'ai recompilé le programme avec les dernières versions des librairies de Juric, les niveaux de gris devraient être plus stables sur les HW2. J'ai aussi modifié les coefficients de la réflexion, et maintenant la touche APPS fait la même chose que ENTER, on n'a plus besoin de s'étirer les doigts à s'en faire mal :-)
v2.0 b2 - 20/09/00 - 17 205 octets
J'ai corrigé tous les petits bugs et oublis de la version précédente.
v2.0 b1 - 17/09/00 - 16 913 octets
Ca y est ! Cela faisait longtemps que je souhaitais refaire l'interface, et ce n'est qu'à la sortie de Ti-Chess 3.01 - en voyant leurs superbes graphismes - que j'ai trouvé le courage de me remettre à la tâche. J'ai donc totalement refait l'interface en intégrant partout des niveaux de gris.
La version précédente ne marchait pas sous les ROM 2.04 et 2.05, j'ai découvert qu'une fonction du TIOS (des timers plus précisément) avait disparue. J'ai donc dû refaire toute ma gestion des touches pour m'adapter à ce changement. Donc plus d'auto-repeat, mais l'apd est activé, et la touche CLEAR est accessible partout.
Enfin, j'ai corrigé un ancien bug dans le retour en arrière, et j'ai traduit toute la documentation en html.
v1.46-47 - 24/07/00 - 13 859 octets
J'ai rajouté un compteur du nombre de coups envisagés par la 89. Lui et le nombre 'eval' sont actualisés au cours de la réflexion. Rajouté une version 92+.
v1.41-45 - 10/06/00 - 13 451 octets
On peut maintenant revenir en arrière d'autant de coups que l'on souhaite, même avec une partie rechargée, la réflexion est légèrement améliorée et surtout accélérée, et enfin j'ai nettoyé séparé mon code source en plusieurs fichiers, notamment grâce au très pratique Tigcc-IDE.
v1.4 - 16/04/00 - 13 151 octets
Ca commence enfin à ressembler à ce que j'imaginais au début ! J'ai intégré des niveaux de gris dans le (nouveau) menu de démarrage, rajouté plusieurs options, une page d'info, bien accéléré le moteur de réflexion, rajouté un peu d'aléatoire pour éviter de rejouer toujours la même partie, et enfin nettoyé mon code source pour que ceux que ça intéresse puissent y comprendre quelque chose.
v1.3b2 - 26/03/00 - 11 915 octets
Je n'ai pas tellement eu le temps de voir ce programme ces dix derniers jours, car je suis en train de faire Flib. Cependant, j'étais tracassé car je savais que Othello2 était toujours buggé, et c'est en programmant Flib que j'ai compris d'où venait l'erreur. Conséquence : un programme plus petit qui marche maintenant avec absolument tous les kernels, et qui ne plante jamais !
v1.3b - 12/03/00 - 12 367octets
J'ai enfin réussi à dénicher le bug stupide qui provoquait un plantage très fréquent au démarrage ! Je m'excuse à tous ceux qui ont dû reseter leur 89 après avoir testé ma version 1.3 :-(
v1.3 - 08/03/00 - 12 476 octets
Passage en mode doors, correction de deux bugs mineurs mais gênants, joli barre de réflexion, nette amélioration du niveau de jeu grâce à une prise en compte de la mobilité, traduction en anglais, quelques améliorations générales.
v1.2 - 20/02/00 - 12 383 octets
Possibilité de recharger le jeu précédent, un menu de départ beaucoup plus joli avec des pions qui tournent, nombreuses améliorations générales.
v1.1 - 17/02/00 - 11 387 octets
La majorité des options sont maintenant présentes, mais le menu de départ est encore dégueulasse.
v1.0b - 15/02/00 - 9541 octets
Mon premier programme en C, une semaine de travail acharné pour un résultat plus que convenable :-)
Infos :
Pour toute suggestion, commentaire ou découverte d'erreurs non prévues (ce qui paraît incroyable ;-) ), vous pouvez me joindre à :
francois.leiber@laposte.net
Toute idée sera la bienvenue !
Toutes les mises à jour de mes programmes sont disponibles en avant-première sur mon site :
http://leiber.free.fr/
Je compte, maintenant que je suis parti, faire de nombreux programmes en C, mais malheureusement le temps me manque pour tout ça (MP à LLG bestiââââl pour ceux qui veulent savoir...), vivement que j'ai passé les concours !
En tout cas, j'encourage chaleureusement tous ceux qui voudraient se mettre au C mais qui hésitent, et c'est pourquoi je fournis mon code source.