120

Bah, si je suis si rapide (2023 ... roll), c'est parce que je le fais en Asm.
Si je l'avais commencé en C, il serait sorti en même temps que le tien, comme je l'ai déjà indiqué grin.

Au fait, puisque tu es l'instigateur du projet, sais-tu qui participe encore à ce projet, et quelle est la plate-forme prévue ?
Et quid de l'interfaçage ?

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

121

Ethaniel :
Au fait, ton programme est-il une interface graphique, ou une IA ?

Sur quelle plate-forme, en quel langage ?

c'était un projet à 4 en C ansi, mode console, et c'est ExtendeD qui a fait l'IA.
Ansi-> n'importe quelle plate-forme (ça doit même tourner sur ti ce truc)

Quelle école (avec des cours de SF eek) ?

isep
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

122

Ethaniel : Pollux participe. Toi aussi visiblement. Et moi, en 2048 grin
Ce sera sur TI89/92+/V200.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

123

Ce sera sur TI89/92+/V200.
Au moins, le problème de l'interfaçage est réglé : le programme arbitre lance à tour de rôle chaque IA, qui porteront des noms imposés (ex: joueur1(col_adv) et joueur2(col_adv), avec col_adv contenant le numéro de colonne joué par l'adversaire).

Seul problème : sur TI, je ne connais que le TI-Basic, pas le C ni l'Asm.
Et si je me mets à apprendre un de ces langages pour que mon IA mette moins de 42'19.5" par coup (Marathon powaa grin), il ne sera pas fini en 2023, mais plutôt en 2076 (origine de ces dates grin).

En tout cas, je laisse un peu de côté le développement en Asm x86, je fais les deux programmes (arbitre et IA) en TI-Basic (92+), puis je repars sur PC pour développer une autre IA en réseau de neurones formels (mon sujet de TIPE de 3/2 grin, et mon projet de groupe en robotique de 1ère année de PG grin bis).
Sauf qu'en RNF, il les faudra bien plus de 7 décennies pour paramétrer les 657 poids synaptiques de mon perceptron embarrassed ...


@ Ximoon : j'espère que ton projet à 4 s'est bien déroulé.
A PG, les projets d'Info se font théoriquement en binôme, mais comme les filles installées derrière moi en salle d'info se sont mises en trinôme, je me suis retrouvé tranquille pénard : de toute façon, je ne pense pas que j'aurais supporté que quelqu'un vienne interférer dans le programme que j'avais décidé de faire ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

124

C'est con, c'est isntructif de programmer en groupe (sauf quand les groupes merdent, d'ailleurs, a plus de 2, y'a souvent une brebie galeuse)

125

C'est con, c'est isntructif de programmer en groupe

clair
et puis, ça entraine pr une fois dans la vie professionnelle smile
(sauf quand les groupes merdent, d'ailleurs, a plus de 2, y'a souvent une brebie galeuse)

oué sad
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

126

Bah oui, c'est con, mais je suis un peu lourd, donc un peu asocial (pour éviter d'emm**der les autres avec ma lourdeur, justement).
Et comme j'ai une vision très personnelle de l'informatique et de la manière d'en faire, ça n'aurait jamais collé avec mon binôme si j'en avais eu un.

Ainsi, la première chose que je fait quand je dois programmer, c'est créer un source et y mettre les trucs de bases, puis je le complète petit à petit : tout se passe sur ordinateur, et uniquement sur ordinateur.
Les autres, tous les autres sans exceptions (du moins en 1ère année à PG), sauf squalyl/M_Anderson, prennent une feuille de papier, et écrivent ce qu'ils doivent faire : sur les 2 mois qu'ont durés les projets d'Info, certains (les 3 filles derrière moi par exemple) n'ont commencé à taper leurs premières lignes de codes sur ordinateur qu'à la dernière scéance, soit 2 heures avant de les rendre eek ...
Si mon éventuel binôme sort une feuille de papier au lieu de créer un source, je suis sûr que je pète un PIC mad !


Maintenant, concernant le concours Puissance 4 : mon programme arbitre avance bien, et sera bientôt capable de faire s'affronter deux IA sur une TI (ou deux humains, ou un humain et une IA).
En fait, il les fait déjà s'affronter, mais il ne sait pas encore déterminer lorsqu'il y a un coup gagnant : il sait par contre détecter les coups interdits et les tentatives de fraudes primaires (sanctionnés par une disqualification immédiate devil gniark).
Il sera pleinement opérationnel d'ici peu, c'est-à-dire une semaine (cause : 600 bornes pour rejoindre Grenoble + emménagement en résidence universitaire + tout ce qui tourne autour de la rentrée).

@ nEUrOO et squale92 : participez-vous au concours (SVP, dites oui !) ?
Je rédigerai demain (si quelqu'un répond à ce topic) un topo très précis sur l'interfaçage entre l'arbitre et les IAs, afin que vous sachiez exactement les paramètres d'entrée et de sortie de votre IA.

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

127

Pollux : ton IA élague sur beaucoup de critères différents, il élague un peu, pas du tout (récursivité bourrin) ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

128

Nan, je participerai pas... je suis dans pas mal de clubs, p-ê bde plus projets perso et mario kart sur gc, ce qui me laisse pas de temps pour moi sad

129

Tu réponds 2 mois après grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

130

J'avais pas internet avant deux semaines wink

131

Ben il élague d'après l'évaluation de la position, genre alpha-beta (je pense que ça doit être assez classique).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

132

Je ne vois pas comment élaguer efficacement. Tu abandonnes la recherche dans une branche quand le nombre de points remportés par l'adversaire (ou le rapport points de l'advresaire/mes points...) est supérieur au plus petit nombre trouvé jusqu'à présent ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

133

Oui, en gros. C'est l'algorithme alpha-beta, il doit y avoir pas mal de docs là-dessus sur Internet.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

134

T'inquiètes j'ai un Login: qui avait consacré un gros dossier à l'IA des jeux d'échec. L'α-β est expliqué. ([edit] : yAro ! L'Unicode BORDEL !!! grin)
J'ai juste l'impression qu'il s'applique mal à un puissance 4, qu'il peut nous faire passer à côté de branches qui sont meilleures que d'autres. Je vais relire le dossier, j'ai mal compris le système peut-être smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

135

Pas besoin de Unicode: o< - ß . smile
Et c'est d'ailleurs l'algorithme utilisé par TI-Chess et TI-Con45.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

136

"o<" c pas très explicite...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

137

lol c'est un alpha o< ?
avatar
;)

138

Il faut le savoir smile
Je vais repenser un peu mon algo.
Pollux : en combien de tests minimum tu détermines si le pion qu'on vient de mettre fait gagner la partie ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

139

J'ai une liste de tous les coups (alignement de 4 pions) possibles, avec pour chaque coup combien de pions ont déjà été mis et de quelle couleur ils sont, et pour chaque case une liste de tous les coups encore possibles liés à cette case. Quand je rajoute un pion blanc, je regarde dans la liste et pour chaque coup possible, si c'est un coup "vierge", alors je dis qu'il y a un pion blanc dedans; si c'est un coup "noir", alors je supprime le coup puisque plus personne ne pourra l'utiliser; et si c'est un coup avec déjà n pions blanc, alors je dis qu'il y a n+1 pions blancs; si n+1=4, alors on a gagné.
Donc ça fait au maximum 13 tests (et pas 13x4 comme avec la méthode bourrin).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

140

J'ai pas totalement compris. Je veux juste savoir, ça en fait combien au minimum ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

141

Au minimum? Si la case ne permet pas de faire de combinaison gagnante, 0 tests. Si c'est la case du milieu et que toutes les combinaisons gagnantes passant par cette case sont encore possible, 13 tests.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

142

Mais pour savoir qu'il y a 0 test à faire, il faut que tu en fasses 1 (ou peut-être 4) ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

143

0 tests de cases du jeu, mais effectivement 1 lecture dans la liste des combinaisons possibles pour la case.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

144

J'ai pensé à une méthode qui demande toujours le même nombre de tests : 4.
Quand tu places un pion, ta méthode nécessite-t-elle beaucoup d'affectations et de mises à jours de compteurs/index ?
La mienne demande la mise à jour de 5 variables (dont un compteur qui indique le nombre de jetons dans la colonne).
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

145

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 ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

146

smile

<parano> Tu sais qu'on peut facilement modifier le program counter d'un prog TI-Basic avec une simple variable globale? gni </parano>

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

147

confus program counter ???

Je te précise que même si le post ./112 rappelle que 'le but n'est pas de faire un jeu de combat entre deux programmes', je n'ai pas dit dans quel répertoire se trouve chaque programme joueur, ni quel est le nom et le répertoire de l'arbitre, justement pour éviter de modifier le programme adverse ou l'arbitre !
Et puis de toute façon, comme les sources seront releasées à la fin du concours (vers 2076 grin), on verra bien s'il y a de la triche de ce type ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

148

program counter ???

Bah, la variable interne qui dit quelle est la prochaine instruction TI-Basic à exécuter grin
Je te précise que même si le post ./112 rappelle que 'le but n'est pas de faire un jeu de combat entre deux programmes', je n'ai pas dit dans quel répertoire se trouve chaque programme joueur, ni quel est le nom et le répertoire de l'arbitre, justement pour éviter de modifier le programme adverse ou l'arbitre !

Hou là là, c'est tellement plus simple!
while (*++TIBasic_ProgramCounter!=NEWLINE_TAG);
Et hop, on a le droit à une exécution bonus tongue (bon, c'est un peu plus subtil s'il y a un prog qui chronomètre)

Et puis c'est tellement plus drôle de corrompre les données du programme adverse gni
Et puis de toute façon, comme les sources seront releasées à la fin du concours

Pas les miennes ^^ wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

149

Mais ... euh !!!
Sois un peu fair-play !

Sérieusement, j'espère que tout le monde jouera le jeu, sinon ce concours est voué à l'échec.
Déjà qu'il n'y a pas grand' monde qui y participe ...

Quand tu dis que tes sources ne seront pas releasées, ça signifie que tu ne participe pas ?
mourn ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

150

Mais si, rhô, je suis pas un gros méchant qui veut mettre un virus dans toutes les calculettes qui essayent d'exécuter le prog de puissance 4 roll
Par contre, ce qui me fait plus peur, c'est que le "tout le monde" dans "j'espère que tout le monde jouera le jeu" risque de se réduire à 2 ou 3 personnes (voire moins cheeky).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)