-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chat IA #2
Comments
Bug trouvé : RespectsOneHive() => renvoie False tout le temps ! En tout cas j'ai pas trouvé de cas où ça passe. Je me mets dessus, je te tiens au jus quand c'est réglé. |
Le test à un seul voisin passe, donc ça vient du parcours mais je vois pas où est le problème... |
J'ai trouvé une incohérence :
Dis-moi si jamais tu arrives à comprendre le pourquoi du comment ! |
Bien vu la grosse coquille dans le constructeur de gameconfig, effectivement il faut tester le isOnBoard pour le mettre dedans -> du coup j'ai modif ça et j'ai push la ptite modif, je pense qu on va passer une bonnne partie de la journée de demain à corriger des bugs à la con dans ce genre |
Mais ca continue à me péter à la gueule quand je lance le jeu, et c'est pas super confort dans le bus, les enculés ont pas pensé à m'installer un bon plan de travail histoire que je puisse taffer toute la nuit :) |
C'est le getNode(Coord) qui foire. L'objet node du RespectsOneHive est différent de l'objet retourné aux même coordonnées par getNeighborsInArrayList, qui appelle getNode... J'arrive pas à comprendre pk c'est pas le même objet. |
coucou, je viens de me connecter, je jette un coup d'oeil |
Je me demande si il ne faudrait pas implémenter un getNeighbors direct dans PieceNode... |
damn, je viens de pull, je peux plus exec |
ca fais pareil chez toi ? |
C'est Antoine x) Tkt il va repush |
Réessaye là |
Pour moi ça macrche |
kk |
yes cool, je viens de finir avec mes annonces d'apart du coup je m'y met pour de vrai |
Ok ok, ça a été ? |
Je viens de push le fichier de tests, comme ça tu peux voir concrètement les adresses mémoires (j'ai commenté la toString du coup) |
je viens de trouver une coquille dans le core qui empechait l ia de jouer, tu peux demander a antoine si je peux push un ptit truc dans le core maintenant ? |
et du coup elle arrive à jouer le ppremier coup, ça envoie un outofbound après |
Ouais vas-y |
ok |
Il faudrait que tu repush, apparemment il manque une getCore dans IAMove |
ouais c'est fait |
tiens je repush, ce coup ci il y a pas mal d'output, ça permet d'étudier un peu ce qui se passe |
maintenant elle arrive à jouer un coup ! ouais !! |
ca y est petit à petit on avance, j'ai trouvé un autre bug débile dans la méthode qui trouvait les nouvelles positions possibles, corrigé |
ok y a un autre bug qui vient de random.nextInt, il essaye de choper un coup possible mais il choisit au pif entre 0 et nb de coups possibles, il trouve -1 |
Ok là ça pue !!!
|
ok y a un autre bug qui vient de random.nextInt, il essaye de choper un coup possible mais il choisit au pif entre 0 et nb de coups possibles, il trouve -1 |
Je me prends une pause, j'essaierai de m'y remettre tout à l'heure mais c'est pas gagné, j'ai eu une nuit de merde et une journée éreintante. |
Ok |
Tu peux regarder ce bug de node dans RespectsOneHive ? J'arrive pas à le corriger du coup je suis bloqué là |
Pour le one hive je comprends pas, l'ia se met à pouvoir jouer plusieurs coups sans bugger et du coup elle respecte le one hive à chaque fois, tu sais ce qui merde ? |
je suis en train de bosser sur la notation officiel si tu veux donc chaque piece à un string associé en notation officiel |
Le truc des couleurs peut aussi venir de la même chose que le one hive : quand on récupère la pièce de la gameconfig avec getNode, getNode retourne un node aux propriétés identiques à celui qu'on veut, mais l'objet est différent. Du coup la mise à jour de la board ne se fait pas vu qu'on modifie pas le bon objet. J'ai passé la journée dessus, je vois le problème mais je sais pas comment le résoudre. |
Ok j'ai trouvé. Je sais absolument pas pk ça fait ça mais j'ai trouvé la parade. Je push tout de suite. Retest ton IA pour voir si ça va mieux. |
Salut, j'ai maté un peu le code de l'IA et en modifiant 2-3 trucs elle réussi à jouer un petit peu, en ne respectant pas toutes les règles certes mais elle joue. -Dans le constructeur de PieceNode il faut ajouter: -Dans GameConfig, pour la méthode getHighestNode il faut la remplacer par: |
public boolean isFreeCoord(Coord coord) { Il faut vérifier que la case est dans le tableau aussi |
En faisant ça j'ai pu voir quelques bugs : |
En fait l'IA essaie de bouger une pièce au tour 1 |
Bref je modifie rien de ce que vous avez fait, je connais pas suffisamment le code pour ça :p |
Ok je vais jeter un oeil. |
Si vous voulez, vous pouvez tester avec la fenêtre de jeu principale, comme ca vous pouvez déplacer le plateau/annuler le coup de l'IA/Relancer une partie PVIA facilement |
Pour ca dans nouvellepartie il faut cliquer sur le bouton pvia et choisir en bas le mode IA facile |
En fait je crois que l'IA essaie de bouger ma reine quand je la place en premier |
Ouais, j'ai repéré le bug, il vient du fait que les id des pieces dans le state ne contiennent pas la couleur, tandis que dans l'ia oui (en gros elle a l'impression de déjà avoir placé sa reine),, je suis en train de réfléchir à fixer le bug de la bonne manière sans avoir à faire des petites modifs de ci de là (peut etre au niveau du constructeur de la pièce). |
Pour le bug du beetle qui baise toute la partie, dans le fichier Minimax.java il faut remplacer la triple boucle par ça : for (Column column : core.getBoard().getBoard()) { |
C'est après le gros commentaire : " /*ancienne version avec des streams -> pas compatible avec les apppels de methode " |
En gros faut regarder les possibilités de déplacement que pour la pièce au dessus, celle en dessous osef en soit :p |
Un pastebin pour y voir plus clair |
J'ai lu le commit de ce week end :
Je suis en train de bosser sur la LoopingC :
J'ai pull ton commit et merge avec le mien pour rajouter One hive.
Dans les deplacements de la queen -> j'ai juste changé le clone du tableau en system.arraycopy qui est un chouilla mieux pour copier des tableaux d'int (pas d'exeptions touçatouça)
La fonction getNeighbors -> j'ai mis les voisins dans l'ordre
-> renommée getNeighborsInArray
-> et remis l'ancienne qui s'appelle getNeighborsInArrayList
-> La dif entre les 2 : inArray renvoie tous les voisins, même les null, dans un array et dans l'ordre ; InArrayList ne renvoie que les voisins non null, dans une arraylist, sans ordre particulier. Du coup pour les déplacements la première est mieux, pour le onehive c'est la deuxième
Et j'ai fait un peu d'ajout de commentaires, saut de lignes, le fichier commence à être long donc j'ai fait la secrétaire et j'ai rendu le tout un chouille plus lisible.
Et dans la journée je pense que je vais bosser sur d'autres déplacements, à priori je vais attaquer avec l'araignée et la fourmi.
The text was updated successfully, but these errors were encountered: