2017-10-05 6 views
0

Je suis nouveau en C++ et je fais un programme pour la classe. Le programme est un jeu de Tic Tac Toe entre deux personnes. J'ai déjà complété une version du programme qui n'utilise pas de fonctions et j'ai essayé de les utiliser.C++ Comment afficher un tableau que j'ai manipulé dans une fonction?

Je voudrais éditer un tableau dans une fonction et sortir la fonction à utiliser plus tard dans le programme.

Voici le code;

// This is a assessment project which plays ticTacToe between two players. 

#include <iostream> 

using namespace std; 

int main() { 

    void displayBoard(char ticTacToeGame[][3]); // sets up use of displayBoard() 
    char userPlay(); // sets up use of userPlay() 
    char addplayToBoard(char play, char ticTacToeGame[][3]); // sets up use of addPlayToBoard() 


    char ticTacToeGame[3][3] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}; // game board array 


    // declaration of variables 
    char play; 

    displayBoard(ticTacToeGame); // displays the board to user 
    play = userPlay(); // gets users play and stores it as a char 

    return 0; 
} // end of main() 

// function used to display the board 
void displayBoard(char ticTacToeGame[][3]) { 

    // display board 
    for (int row = 0; row < 3; row++) { 

     cout << endl; 

     for (int column = 0; column < 3; column++) { 
      cout << "| " << ticTacToeGame[row][column] << " "; 
     } 

     cout << "|\n"; 

     if (row < 2) { 
      for (int i = 0; i < 19; i++) { 
       cout << "-"; 
      } 
     } 
    } 


} // end of displayBoard() 

// function used to get users play 
char userPlay() { 

    // declaration of variables 
    char play; 

    cout << "Play: "; 
    cin >> play; 
    cout << endl; 

    return play; 

} // end of userPlay() 

// function used to add users play to board 
char addPlayToBoard(char play, char ticTacToeGame[][3]) { 

    for (int row = 0; row < 3; row++) { 
     for (int column = 0; column < 3; column++) { 
      if (ticTacToeGame[row][column] == play){ 
       ticTacToeGame[row][column] = 'O'; 
      } 
     } 
    } 
    return ticTacToeGame; 

} // end of addPlayToBoard() 

Comment est-ce que je ferais ceci?

+2

Utilisez std :: vector ou std :: array. –

+0

Merci pour une réponse, se penchera sur la façon de les utiliser. –

+1

Vous pouvez également examiner la différence entre passer par référence et passer par valeur dans les fonctions. Plus précisément dans votre fonction 'addPlayToBoard' – hellyale

Répondre

2

Un bon cours C++ couvrirait les classes avant les tableaux. Le type de tableau que vous utilisez ici est un bloc de construction primitif, c'est pourquoi vous vous battez.

Nous devinons ici un peu dans ce que votre cours déjà couvert, mais comment vous auriez normalement faire:

class Board { 
    char fields[3][3]; 
public: 
    // Class methods 
}; 

Voilà la raison importante pour laquelle: classes C++ sont les types épanouies et peut être renvoyé à partir des fonctions, tout comme les valeurs int. Mais souvent, ce n'est même pas nécessaire: les méthodes de classe fonctionnent sur place.