//cette fonction recherche si 2 'O' sont alignées horizontalement, verticalement, et en diagonale et met un 'O' pour gagner int iaPlayToWin() { //une chaine pour tester la présence de O string car_ord = _signe_ordinateur; string tabLigne = ""; for (int i = 0; i < 9; i += 3) { if (i == 0) { //test des colonnes for (int j = 0; j < 3; j++) { //concaténation des colonnes tabLigne = _grille.getCaseValue(j) + _grille.getCaseValue(j + 3) + _grille.getCaseValue(j + 6); //test des différentes position des O et affectation du O à l'unique case vide if (tabLigne == car_ord + car_ord) { if (_grille.getCaseValue(j) == "") { return(j); } else if (_grille.getCaseValue(j + 3) == "") { return(j + 3); } else if (_grille.getCaseValue(j + 6) == "") { return(j + 6); } } } //diagonale à partir de la position 0 tabLigne = _grille.getCaseValue(0) + _grille.getCaseValue(4) + _grille.getCaseValue(8); if (tabLigne == car_ord + car_ord) { if (_grille.getCaseValue(0) == "") { return(0); } else if (_grille.getCaseValue(4) == "") { return(4); } else if (_grille.getCaseValue(8) == "") { return(8); } } //diagonale à partir de la position 2 tabLigne = _grille.getCaseValue(2) + _grille.getCaseValue(4) + _grille.getCaseValue(6); if (tabLigne == car_ord + car_ord) { if (_grille.getCaseValue(2) == "") { return(2); } else if (_grille.getCaseValue(4) == "") { return(4); } else if (_grille.getCaseValue(6) == "") { return(6); } } } //test des lignes tabLigne = _grille.getCaseValue(i) + _grille.getCaseValue(i + 1) + _grille.getCaseValue(i + 2); if (tabLigne == car_ord + car_ord) { if (_grille.getCaseValue(i) == "") { return(i); } else if (_grille.getCaseValue(i + 1) == "") { return(i + 1); } else if (_grille.getCaseValue(i + 2) == "") { return(i + 2); } } } return(-1); }