Tic tac toe program enchanced

Hi everyone, i need help acomplishing a call to the method iniciarPartida 4 times form 0, what i mean by this is when i do as i did in the program below it will run it and then the next call it will start with the board already filled with the previous game.
I am also having troubles with the text part, wich i want to save the scores.
Also any advice on how to make my program smoother will be nice.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
// PAQUETES IMPORTADOS
#include <iostream>
#include <cstdlib>
#include <fstream>
// PERMITE USAR LAS FUNCIONES DE ENTRADA Y SALIDA
using namespace std;
// DECLARACION DE ARREGLO DE VARIABLES CHAR
char cuadro[10] = {'\0','1','2','3','4','5','6','7','8','9'};
string jugador1;
string jugador2;
int ronda;
// INVOCA METODOS REVISAR GANADOR Y TABLERO
int RevisarGanador();
void tablero();
int iniciarPartida();
void crearArchivo();
// INICIO DEL MAIN
int main()
{
    // DECLARACION DE VARIABLE TIPO INT PARA SELECCIONAR LA OPCION EN EL MENU
    int opcionMenu;
    // IMPRIME LAS INSTRUCCIONES PARA SELECCIONAR LA OPCION
    cout<<"\n Introduzca la opcion deseada";
    cout<<"\n 1.Iniciar Partida \n 2.Ver Marcadores \n 3.Salir\n";
    // ASIGNA LA OPCION DIGITADA
    cin>>opcionMenu;
    // ASIGNA LA OPCION DIGITADA CON UN CASO
    switch (opcionMenu)

    {
        // DESPLIEGA LA INTERFAZ DE JUEGO PARA EL USUARIO
        // CASO 1
        case 1:
        {

            // INSTRUCCIONES PARA SOLICITAR Y ALAMACENAR LOS NOMBRES DE LOS JUGADORES
            cout<<"Ingrese el nombre del Jugador 1"<<endl;
            cin>>jugador1;
            cout<< "Ingrese el nombre del Jugador 2"<<endl;
            cin>>jugador2;
            // LLAMADA AL METODO INICIARPARTIDA PARA DAR INICIO A LA PARTIDA

            iniciarPartida();
            iniciarPartida();
            iniciarPartida();
            iniciarPartida();

            // LLAMADA A EL METODO CREAR ARCHIVO PARA ALMACENAR LOS DATOS EN UN ARCHIVO .TXT
            crearArchivo();

            }
            // CIERRA CON EXITO EL PROGRAMA
            return 0;
        // CASO 2
        case 2:
            {
                //
                std::string line_;
                ifstream file_("Marcadores.txt");
                // COMPRUEBA SI EL ARCHIVO ESTA ABIERTO
                if (file_.is_open())
                {

                    while(getline(file_,line_))
                    {
                      std::cout<<line_<<'\n';
                    }
                    // CIERRA EL ARCHIVO
                    file_.close();
                }
                // EN CASO DE QUE EL ARCHIVO NO ESTE ABIRTO IMPRIME MENSAJE DE NOTIFICACION
                else

                    std::cout<<"El archivo no esta abierto"<<'\n';
                    std::cin.get();
                cout << "Jugador\t\tPuntos";
                cout << jugador1<<"\n";
                cout << jugador2<<"\n";
                // CIERRA LA FASE 2 CON EXITO
                cout << "Se ha cerrado con exito";

                return 0;
                }
        // CASO 3
        case 3:
            {
                //INFORMA LA SALIDA CON EXITO DEL PROGRAMA
                cout<<"\n Se ha salido con exito del programa";
                return 0;
            }
    }
}



/*
    FUNCION PARA DEVOLVER EL ESTADO DEL JUEGO
    1 EL JUEGO FINALIZO CON RESULTADO
    -1 EL JUEGO SIGUE EN PROGRESO
    O EL JUEGO TERMINO SIN RESULTADO
*/
// METODO PARA REVISAR EL GANADOR, DEVUELVE GANADOR
// SE ENCARGA DE COMPARAR CUADROS, EN ESTE CASO 3 EN LINEA, EN CASO DE QUE SEAN IGUALES DEVUELVE 1 PARA GANADOR
int RevisarGanador()
{
    // COMPARA CUADRO 1 CON 2 Y CUADRO DOS CON 3
    if (cuadro[1] == cuadro[2] && cuadro[2] == cuadro[3])

        return 1;
    // COMPARA CUADRO 4 CON 5 Y CUADRO 5 CON 6
    else if (cuadro[4] == cuadro[5] && cuadro[5] == cuadro[6])

        return 1;
    // COMPARA CUADRO 7 CON 8 Y CAUDRO 8 CON 9
    else if (cuadro[7] == cuadro[8] && cuadro[8] == cuadro[9])

        return 1;
    // COMPARA CUADRO 1 CON 4 Y CUADRO 4 CON 7
    else if (cuadro[1] == cuadro[4] && cuadro[4] == cuadro[7])

        return 1;
    // COMPARA CUADRO 2 CON CUADRO 5 Y CUADRO 5 CON 8
    else if (cuadro[2] == cuadro[5] && cuadro[5] == cuadro[8])

        return 1;
    // COMPARA CUADRO 3 CON  6 Y CUADRO 6 CON 9
    else if (cuadro[3] == cuadro[6] && cuadro[6] == cuadro[9])

        return 1;
    // COMPARA CUADRO 1 CON 5 Y CUADRO 5 CON 9
    else if (cuadro[1] == cuadro[5] && cuadro[5] == cuadro[9])

        return 1;
    // COMPARA CUADRO 3 CON 5 Y CUADRO 5 CON 7
    else if (cuadro[3] == cuadro[5] && cuadro[5] == cuadro[7])

        return 1;
    // ESTABLECE UN "DEFAULT" PARA EL CASO EN QUE LAS COMPARACIONES ANTERIORES NO SE CUMPLAN
    else if (cuadro[1] != '1' && cuadro[2] != '2' && cuadro[3] != '3'
                    && cuadro[4] != '4' && cuadro[5] != '5' && cuadro[6] != '6'
                  && cuadro[7] != '7' && cuadro[8] != '8' && cuadro[9] != '9')

        return 0;
    // ESTABLECE CASO DE MANEJO EN CASO DE QUE OCURRA UN ERROR NO PREVISTO
    else
        return -1;
}

// FUNCION PARA DIBUJAR EL TABLERO DEL JUEGO
void tablero()
{

    system("cls");
    // IMPRIME NOMBRE DEL JUEGO
    cout << "\n\n   Tres en linea\n\n";
    cout << "   Ronda: \n  " <<endl;

    // IMPRIME LOS JUGADORS Y LA OPCION QUE UTILIZARAN ENTRE "X" Y "O"
    cout <<"   "<<jugador1<<" (X)  -  "<<jugador2<<" (O)" << endl << endl;
    cout << endl;
    // IMPRIME LA PARTE GRÁFICA PARA VISUALIZAR EL CUADRO
    cout << "       |     |     " << endl;
    cout << "  " << cuadro[1] << "    |  " << cuadro[2] << "  |  " << cuadro[3] << endl;

    cout << "  _____|_____|_____" << endl;
    cout << "       |     |     " << endl;

    cout << "  " << cuadro[4] << "    |  " << cuadro[5] << "  |  " << cuadro[6] << endl;

    cout << "  _____|_____|_____" << endl;
    cout << "       |     |     " << endl;

    cout << "  " << cuadro[7] << "    |  " << cuadro[8] << "  |  " << cuadro[9] << endl;

    cout << "       |     |     " << endl << endl;
}
int iniciarPartida()
{
    // DECLARACION DE VARIABLES
    int jugador = 1;
    int i;
    int eleccion;
    char simbolo;
    int n = 0;
    int cuenta = 0;
    // INICIO DE WHILE PARA CREAR 4 RONDAS
    while (cuenta<=3)
    {
        do
        {

            tablero();

            jugador = jugador % 2;

            cout << "Jugador " << jugador << ", Ingese un numero:  ";
 
            cin >> eleccion;

            simbolo = jugador ? 'X' : 'O';
            // CICLOS IF Y ELSE PARA ASIGNAR  EL SIMBOLO AL NUMERO ELEGIDO
            if (eleccion == 1 && cuadro[eleccion] == '1')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 2 && cuadro[eleccion] == '2')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 3 && cuadro[eleccion] == '3')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 4 && cuadro[eleccion] == '4')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 5 && cuadro[eleccion] == '5')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 6 && cuadro[eleccion] == '6')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 7 && cuadro[eleccion] == '7')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 8 && cuadro[eleccion] == '8')
                cuadro[eleccion] = simbolo;
            else if (eleccion == 9 && cuadro[eleccion] == '9')
                cuadro[eleccion] = simbolo;
            else
            {

                cout<<" Movimiento invalido ";
                jugador--;
                cin.ignore();
                cin.get();
            }

            i=RevisarGanador();
            // SUMA A JUGADOR QUE GANO
            jugador++;
        }
        while(i==-1);

            tablero();

            if(i==1)
                cout<<"==>\aJugador "<<--jugador<<" Gano ";
            else

                cout<<"==>\aEmpate";

                cin.ignore();
                cin.get();

            n++;
            cout << cuenta;
            ++cuenta;
    }
}
void crearArchivo()
{

    int jugador = 1;
 
    ofstream file_("Marcadores.txt");
    //marcadores_.open("Marcadores.txt");

    if (file_.is_open())
    {

        file_<<jugador;
    }

    file_.close();

    std::cin.get();

}

duplicate post http://www.cplusplus.com/forum/beginner/265501/

Do not double post It does not help.
sorry, I am kind of new to the forum
lets do one thing at a time.
to replay, you have to reset all the key variables back to the startup state.
so you need to clear the board, for example, and as that is an array you need to do it in a loop.
not 100% sure, but that looks like it would be
for(int dx = 0; dx < 10; dx++)
cuadro[dx] = '0'+dx;
cuadro[0] = 0; //special case for first entry.
Topic archived. No new replies allowed.