Étape 6: Vérification d’un gagnant (partie 1)
Il y a trois fonctions différentes pour vérifier une victoire : lignes, colonnes et diagonales. Ordinateurs disposent séparer ces derniers dans des conditions différentes, parce qu’ils sont tous différents en termes de matrices. checkForWin() sera notre fonction principale de tester tous les 3 de ces fonctions pour chaque scénario qui a touché l’entrée d’utilisateur.
Pour checkForWin() méthode : vous n’avez qu’une instruction return qui engage les trois fonctions différentes. Si vérifiant les lignes pour win ne retourne pas true puis vérifiez les colonnes pour win, etc.. À l’intérieur de l’instruction return devrait ressembler à: checkRowsForWin() || checkColumnsForWin() || checkDiagonalsForWin()
Pour la méthode checkRowsForWin() : nous sommes une boucle à travers les lignes pour voir si il y a des gagnants. Cela nécessitera une boucle avec un if instruction à l’intérieur. Le pour boucle va être incrémentation par entier i afin d’y vérifier chaque ligne. pour (int i = 0; j’ai < 3; i ++) la si instruction compare chaque espace dans la ligne les uns aux autres et donne une valeur « true » si ils sont tous égaux. Par exemple si la ligne avait trois x dans une rangée, la méthode retourne true. Si (checkRowCol (board [i] [0], Conseil d’administration [i] [1], board[i][2]) == true) si, à l’intérieur de cela si déclaration, il faut retourner true a: ; Et après la boucle for, si la méthode ne s’est jamais arrêté, puis la méthode doit retourner que cette ligne n’a pas trois symboles correspondants consécutives. Donc, juste avant la fermeture de la méthode avec sa finale '}', nous allons écrire : retournent false ; Satisfaire le besoin de retourner une valeur booléenne.
Pour la méthode checkColumnsForWin() : copier et coller le contenu de la méthode checkRowsForWin(). Le seul changement sera à l’intérieur de l’if instruction. Au lieu d’incrémenter à travers les lignes, nous s’incrémentant les colonnes. Ainsi tandis qu’en checkRowsForWin a un if déclaration qui dit : si (checkRowCol (board [i] [0], Conseil d’administration [i] [1], board[i][2]) == true) checkColumnsForWin() aura un if déclaration qui dit : si (checkRowCol (board [0] [i], Conseil d’administration [1] [i], board[2][i]) == true) autre que cela, tout le reste de la méthode reste la même.
Pour checkDiagonalsForWin() méthode : tout écrit peut être contenus dans les parenthèses d’une instruction return(). Le premier chèque que nous exécuterons est sur la diagonale du coin supérieur gauche au coin inférieur droit. Pour ce faire, nous vérifions tous les espaces qui seraient inclus dans cette section. checkRowCol (Conseil d’administration [0] [0], Conseil d’administration [1] [1], board[2][2]) == true) alors nous aurons une déclaration plus, mais nous séparera les deux par un symbole de l’OR: ' ||' La deuxième instruction vérifie depuis le coin supérieur droit au coin inférieur gauche. checkRowCol (board [0] [2], Conseil d’administration [1] [1], board[2][0]) == true) donc votre produit final de la méthode checkDiagonalsForWin() doit être un return(), et à l’intérieur qu’il doit contenir l’instruction première ou la seconde déclaration.