Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static rechercherCoupSelonExperiencesIA(ia, historique) {
  2.   /*
  3.  
  4.   experience est un objet qui ressemble à :  
  5.   [
  6.     {
  7.       gagnant: 1,
  8.       historique: [
  9.         [1, 5, 6, 2, 3, 4, 9, 7, 8],
  10.         [2, 4, 1, 9, 7, 5, 3, 6, 8],
  11.         [9, 8, 4, 7, 2, 3, 6, 5, 1]
  12.       ]
  13.     },
  14.     {
  15.       gagnant: 1,
  16.       historique: [
  17.         [1, 5, 6, 2, 3, 4, 9, 7, 8],
  18.         [2, 4, 1, 9, 7, 5, 3, 6, 8],
  19.         [9, 8, 4, 7, 2, 3, 6, 5, 1]
  20.       ]
  21.     },
  22.     {
  23.       gagnant: 1,
  24.       historique: [
  25.         [1, 5, 6, 2, 3, 4, 9, 7, 8],
  26.         [2, 4, 1, 9, 7, 5, 3, 6, 8],
  27.         [9, 8, 4, 7, 2, 3, 6, 5, 1]
  28.       ]
  29.     }
  30.   ];
  31.  
  32.   */
  33.  
  34.   // récupérer les parties gagnantes pour le même joueur
  35.   let partiesGagnantesAvecNumeroJoueur = experience.filter(partie => partie.gagnant === ia);
  36.  
  37.   let partiesQuiCommencentParMemeHistorique = partiesGagnantesAvecNumeroJoueur.filter(partie => {
  38.     let debutPartie = partie.historique.slice(0, historique.length);
  39.  
  40.     for (let i = 0; i < debutPartie.length; i++) {
  41.       if (debutPartie[i] !== historique[i]) return false; // le début de partie ne correspond pas => on retourne false pour indiquer que la partie ne commence pas pareil
  42.     }
  43.  
  44.     return true; // le début de partie est exactement le même pour le joueur gagnant => on retourne vrai
  45.   })
  46.  
  47.   // on a pas trouvé de partie qui commence pareil => on retourne -1
  48.   if (partiesQuiCommencentParMemeHistorique.length === 0) return -1;
  49.  
  50.   // on a toutes les parties qui commencent pareil et dont le joueur est vainqueur => on prend le prochain coup de la première partie et on renvoie
  51.   return partiesQuiCommencentParMemeHistorique[0].historique[partie.length];
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement