144Fermer146
EthanielLe 03/12/2003 à 00:28
Plom plom plom, me revoilà !
Bon, en fait, depuis septembre, je n'ai pas avancé d'un poil, mais je peux tout de même vous donner les caractéristiques de l'arbitre et de l'interfaçage.

* Chaque programme joueur (IA ou interface humaine) doit obligatoirement s'appeler joueur, sans argument
* Il communique avec l'extérieur par l'intermédiaire d'une seule et unique variable, de type NUM (valeur numérique), nommée colonne
* Chaque programme joueur dispose d'un répertoire complet pour utiliser toutes les variables qu'il souhaite, en plus de la variable colonne
* C'est à chaque programme joueur de gérer sa représentation de la partie en cours, en sachant uniquement dans quelle colonne vient de jouer son adversaire
* Les programmes joueur disposent (normalement) d'une petite zone graphique à gauche de la grille pour afficher ce qu'ils veulent
* Cette zone graphique étant commune aux deux joueurs, c'est à chaque programme joueur d'effacer cette zone avant d'y écrire ce qu'il souhaite

* Lorsqu'un programme joueur est lancé, la variable colonne a déjà été initialisée par l'arbitre, avec une valeur entière comprise entre -1 et 7 inclus
* Si colonne = -1, le programme joueur sait qu'il est le joueur 2 (pions X), et il n'a que le droit d'initialiser ses variables, sans toucher à colonne (qui doit rester à -1)
* Si colonne = 0, le programme joueur sait qu'il est le joueur 1 (pions O), et que la partie vient de commencer -> il place dans la variable colonne une valeur entière comprise entre 1 et 7 inclus indiquant la colonne dans laquelle il joue
* Si colonne est un entier entre 1 et 7 inclus, le programme joueur sait que son adversaire vient de jouer dans la colonne indicée par la variable colonne -> il place dans la variable colonne une valeur entière comprise entre 1 et 7 inclus indiquant la colonne dans laquelle il joue en réponse
* Après avoir indiqué dans la variable colonne le coup joué, le programme joueur doit se terminer normalement

* L'arbitre se charge de l'affichage graphique
* Il se charge de lancer à tour de rôle les deux programmes joueur qui s'affrontent
* Il se charge de lire la variable colonne donnée par un des programme joueur, de mettre à jour l'affichage, et de retransmettre, sans modification, la variable colonne à l'autre programme joueur
* L'arbitre disqualifie immédiatement toute tentative de fraude, c'est-à-dire :
- lorsque le programme joueur reçoit colonne = -1, il est disqualifié s'il modifie cette variable
- dans les autres cas, le programme joueur est disqualifié si la variable colonne n'est pas de type NUM, ou ne contient pas une valeur entière comprise entre 1 et 7 inclus

* L'arbitre ne détecte pas encore lorsqu'un alignement de 4 est réalisé, ni lorsque la grille est pleine ... bientôt, bientôt roll ...

Concernant la zone graphique disponible pour les programmes : je travaille sur 92+, et utilise pleinement son écran, ce qui n'est pas compatible avec la 89.
Afin de réaliser des programmes compatibles, pourriez-vous SVP me donner les dimensions de l'écran sur 89 disponible en TI-Basic (je ne parle pas de l'écran complet accessible en Asm) ?
Sur 92+, l'écran fait 239x103 pixels, soit une diagonale traçable avec PxlLine 0,0,102,238 ...
C'est le même type d'info pour 89 que je souhaiterais ... Merci !
Mais si ça se trouve, il n'y aura plus de place à l'écran pour les programmes joueur, d'où le terme normalement embarrassed ...

J'ai également réalisé un programme joueur compatible avec les spécifications de l'arbitre (gestion de la variable colonne) permettant à un humain de jouer.
Ce qui fait que pour le moment, je ne peux que faire s'affronter deux humains en lançant le programme arbitre grin ...

@++