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




par François LEIBER

http://leiber.free.fr


Description


Un célèbre jeu de stratégie pour la Ti-89 avec une bonne IA et des graphismes évolués, programmé en C et compilé avec le compilateur TI-GCC.


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

Ce programme est distribué sous licence GPL, reportez-vous au fichier GPL.txt ou à http://www.gnu.org/licenses/licenses.fr.html#GPL pour en savoir plus.

Sommaire


  1. Nécessite
  2. Fonctionnalités
  3. Touches
  4. Règles
  5. Historique
  6. Remerciements
  7. Infos

Nécessite


  • Une TI-89, une TI-92+ ou une Voyager 200, avec n'importe quel hardware, n'importe quelle ROM, et pas besoin de kernel installé.

  • Le programme othello2 (lanceur) et oth2data (données compressées avec la technologie ExePack de la TIGCC Tools Suit), 20.3 Ko en tout.

  • Quelques Ko de libre pour pouvoir lancer le jeu.

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 !
  • Un jeu entre deux humains, ou humain-89, ou 89-89.

  • Nombreux niveaux de réflexion, du plus faible au plus fort :
      1. Stupide : la réflexion est totalement aléatoire !
      2. Mauvais : la réflexion est limitée à 0,2 secondes.
      3. Faible : la réflexion est limitée à 0,5 secondes.
      4. Moyen : la réflexion est limitée à 1 seconde.
      5. Correct : la réflexion est limitée à 2 secondes.
      6. Bon : la réflexion est limitée à 5 secondes.
      7. Fort : la réflexion est limitée à 15 secondes.
      8. Expert : la réflexion est limitée à 30 secondes.

Le moteur de réflexion est maintenant adapté du jeu sur PC 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 peut-être à cette réflexion dans une future version...

  • Bibliothèque d'ouvertures de 256 lignes, pour un total de plus de 4 000 coups.

  • Possibilité d'annuler autant de coups que vous vous voulez, et d'annuler les annulations.

  • Touche "extinction immédiate", disponible à tout moment.

  • Possibilité d'avoir du son, si vous avez un buzzer à brancher sur le port de la calculatrice.

  • Sauvegarde automatique du jeu quand vous quittez une partie en cours.
    Othello II crée une petite variable cachée de type 'conf' dans le répertoire main, où sont stockées la configuration et la partie enregistrée.


Touches

Au démarrage ou lorsque vous appuyez sur ESC en cours de jeu :
  • ENTER ou APPS (sur 89) pour choisir un élément du menu.
  • ESC pour quitter ou revenir au jeu en cours.

Dans le menu options :

  • Les flèches verticales pour passer du joueur blanc au noir.
  • Les flèches horizontales pour changer le niveau du joueur.
  • O pour (des)activer le son.
  • M pour (des)activer l'affichage des marques (affichage de points pour indiquer sur quelles cases vous pouvez jouer).
  • 3 pour (des)activer le mode rotation des pions en 3D.
  • I pour (des)activer l'utilisation de la bibliothèque d'ouvertures.
  • ENTER ou APPS (sur 89) ou ESC pour revenir au menu précédent.

Au cours du jeu :

  • Les flèches pour déplacer le curseur.
  • ENTER ou APPS (sur 89) pour placer un pion à l'emplacement du curseur.
  • PLUS pour déplacer le curseur à la case suivante où vous pouvez jouer.
  • <- pour revenir en arrière d'un coup, ou de deux en mode 89-humain. Cette touche est valable même quand le jeu est terminé (sauf en cas de jeu ordi/ordi).
  • CATALOG (= pour les 92+) pour annuler un retour en arrière.
  • F1 pour avoir des statistiques concernant la dernière réflexion de la calculatrice.
  • ESC pour accéder au menu où vous pourrez quitter, recommencer la partie ou modifier les options. Appuyez sur la touche ESC ou sur 'Continuer' pour reprendre le jeu où vous l'avez laissé.

A tout moment :

  • ( et ) pour régler le contraste.
  • CLEAR pour éteindre la calculatrice : pratique pour les urgences ;-)

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, 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.53 - 02/04/04 - 19 404 octets (42 Ko non compressé)

  • Distribution sous licence GPL !
  • Compilation avec TI-GCC 0.95b6.
  • Nouvelle présentation pour la documentation.
  • Support de la TI-89 Titanium.

v2.5 - 12/05/01 - 19 335 octets (42 Ko non compressé)

  • Possibilité de mettre du son (je me suis auto-piraté le source de Flib ;-), mais c'est pas encore génial, sur HW2 surtout (à cause des niveaux de gris).
  • Accélération de la partie graphique (ça se voit par exemple dans les parties stupide-stupide), notamment grâce à la programmation personnalisée de l'affichages de sprites.
  • Résolution de tous les problèmes d'affichage de messages qui pouvaient survenir, principalement quand on revenait en arrière alors que le jeu était fini (c'est Liquid qui remporte 5 F).
  • Remise au point du chargement de la partie précédente, modification du format de la sauvegarde pour plus de sécurité.
  • Le contraste peut être changé à tout moment, avec les touches de parenthèses.
  • Enfin, plusieurs détails qui passeront inaperçus...

Version Anniversaire.3 - 23/04/01 - 18 705 octets (41 Ko non compressé)

  • Correction de tous les problèmes de clavier : c'était l'interruption contrôlant les timers (et même pas les timers eux-même, c'était vraiment vicieux) qui interférait avec la routine de lecture du clavier. Bref, je n'utilise plus de timers, à part pour la réflexion : la vitesse de rotation des pions et l'APD (fixé maintenant à environ 3 minutes) sont réglés à la main.
  • Enfin, correction de quelques problèmes de rebond avec la touche ESC.

Version Anniversaire.2 - 13/03/01 - 18 703 octets (41 Ko non compressé)

  • J'ai refait totalement la gestion du clavier : j'ai pu ainsi désactiver toutes les interruptions non nécessaires, et gagner 15 % en vitesse sur le jeu. D'ailleurs, je trouve les touches plus sensibles et plus agréables maintenant.
  • La touche CLEAR est de nouveau accessible pendant la réflexion.
  • Il y avait UN bug, et c'est moi qui l'ai trouvé : dans certains cas, le retour en arrière en mode humain/ti ne fonctionnait pas correctement, c'est corrigé
  • La version 92+ est maintenant vraiment au point au niveau des touches, même si elle dispose toujours de l'interface 89.
  • Compilation avec la nouvelle bêta de TI-GCC.

Version Anniversaire.1 - 27/02/01 - 18 779 octets (beaucoup plus non compressé)

  • Maintenant, la calculatrice choisit une ouverture au hasard au lieu de jouer toujours de la même manière.
  • J'ai un peu modifié les coefficients de réflexion (ils seront personnalisables dans une prochaine version).
  • La calculatrice affiche un message quand elle est sûre de gagner.
  • Le compteur de coups affiche un chiffre rond (plus esthétique) et compte correctement les coups en fin de partie.
  • Quelques corrections : la touche '+' remarche, la calculatrice souligne correctement le dernier coup joué, et un ou deux détails en plus.
  • J'ai joint un texte d'introduction à Othello et à sa stratégie, par Emmanuel Lazard.
  • Je relance le prix de 5 F pour la premiere personne qui me signalera le moindre petit bug...

Version Anniversaire - 15/02/01 - 18 544 octets (34 Ko non compressé)

  • Et oui, il y a un an, jour pour jour, je terminais ma première version de Othello II ! C'est en cet honneur que j'ai fait cette version-ci.
  • Utilisation d'une bibliothèque d'ouvertures, actuellement 256 ouvertures différentes pour plus de 4 000 coups.
  • J'ai adapté le moteur d'une version plus récente de THOR, la 3.4, qui m'a été envoyée par son auteur Sylvain Quin.
  • Passage en mode nostub (pas besoin de kernel installé), et le programme est maintenant compressé avec la technologie ExePack de la TIGCC Tool Suite, merci à Thomas Nussbaumer et à Marco Lopez.
  • Nouveaux niveaux de gris, enfin stables sur les HW2 !
  • Jolie image d'introduction, merci à TATMF.
  • Possibilité d'annuler un retour en arrière, correction de la manière dont est géré ce retour en arrière, et on peut maintenant revenir en arrière même quand le jeu est fini.
  • Quelques autres petits trucs, je ne me rappelle plus trop...
  • David Teitlebaum gagne 5 F pour avoir été le premier (et le seul) à répertorier un bug potentiel dans la version 2.1...

v2.1 - 03/02/01 - 23 501 octets

  • Correction de tous les petits oublis et problèmes de la version précédente. Je suis prêt à donner 5 F (!) à celui qui me trouvera le moindre petit bug !
  • J'ai diminué les temps de réflexion pour que la calculatrice ait un niveau de jeu abordable, et vous pouvez maintenant avoir accès à des statistiques concernant la dernière réflexion en appuyant sur F1.
  • Enfin, je suis fier de vous présenter un code source particulièrement soigné.

v2.1 bêta - 27/01/01 - 23 739 octets

  • Ca y est ! Je me suis enfin désembourbé de la version 2.0 ! D'ailleurs, celle-ci n'a jamais pu atteindre son achèvement et passer en stade final, cette étape se confondant avec le début de la 2.1.
  • J'ai entièrement ré-écrit le code source, pour augmenter la netteté, diminuer la place, et surtout le rendre très facilement adaptable à n'importe quelle plate-forme.
  • J'ai adapté le moteur de réflexion de THOR 2.1 par Sylvain Quin ; le niveau de la calculatrice est maintenant vraiment fort, et le temps de réflexion est strictement fixé par le timer. Il n'y a plus de niveau perdant.
  • Enfin, comme le code source est encore un peu bancal et qu'il reste quelques problèmes mineurs, attendez-vous à une version plus finie sous peu. Je n'ai donc pas inclus le code source, celui de la version 2.0b4 peut être trouvé sur mon site.

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.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.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é et séparé mon code source en plusieurs fichiers, notamment grâce au très pratique TI-GCC-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.32 - 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.31 - 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égueu.


v1.0 - 15/02/00 - 9541 octets

    Mon premier programme en C, une semaine de travail acharné pour un résultat plus que convenable je trouve :-)


Remerciements

  • Tout d'abord à Sylvain Quin, pour son programme THOR 3.4, dont j'ai adapté le moteur de réflexion.

  • Emmanuel Lazard pour son texte sur Othello.

  • Un immense merci à toute l'équipe de TI-GCC, et en particulier à Zeljko Juric pour ses librairies et sa documentation très complète des fonctions du TIOS, sans lequel tout ceci n'aurait absolument pas été possible.

  • Thomas Nussbaumer et Marco Lopez pour Ti-Chess.

  • Rusty Wagner pour Virtual Ti.

  • TATMF <tatmf.free.fr> pour l'image d'introduction de l'interface.

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/

J'encourage chaleureusement tous ceux qui voudraient se mettre au C mais qui hésitent, et c'est pourquoi le programme Othello II est open-source !
Il est en effet maintenant fourni sour licence GPL, ce qui signifie entre autres que vous avez le droit de le modifier et de le distribuer une fois modifié, du moment que vous respectez les clauses de la licence (fournie avec le programme).


Retour au sommet de la page