Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cstdlib>
- using namespace std;
- int main()
- // A -> X
- // B -> O
- {
- bool filetto = false;
- char table[3][3];
- char giocatore = 'A';
- /* Riempie la matrice con - */
- memset(table, '-', 9);
- do
- {
- // Riga e colonna in input
- unsigned short int riga, colonna;
- for(int riga = 0; riga < 3; riga++)
- // Stampa la griglia di gioco
- {
- for(int colonna = 0; colonna < 3; colonna++)
- cout << table[riga][colonna] << " ";
- // Va a capo a fine riga
- cout << endl;
- }
- // Indica il giocatore e chiede riga e colonna da giocare
- cout << "Turno giocatore " << giocatore << endl;
- cout << "Inserire [riga] [colonna] 1..3: ";
- cin >> riga >> colonna;
- if(!(riga > 0 && riga <= 3 && colonna > 0 && colonna <= 3))
- // Se riga e colonna non sono compresi tra 0 e 3
- continue; // Torna a inizio ciclo while ricominciando da capo
- // L'utente inserire da 1 a 3 ma la matrice esista da 0 a 2
- riga--;
- colonna--;
- if(table[riga][colonna] == '-')
- // Se non è stata già giocata
- {
- if(giocatore == 'A')
- // Se è il turno di A
- {
- table[riga][colonna] = 'X';
- giocatore = 'B';
- }
- else
- // Se è il turno di B
- {
- table[riga][colonna] = 'O';
- giocatore = 'A';
- }
- }
- // Contollo della vittoria
- // Controllo riga per riga
- for (riga = 0; riga < 3; riga++)
- /*
- Compara gli elementi sulla stessa riga,
- vittoria in caso siano 3 uguali sulla stessa riga ex. X X X
- */
- if(table[riga][0] == table[riga][1] && table[riga][1] == table[riga][2])
- {
- // Ignora il carattere di default '-'
- if(table[riga][0] != '-')
- {
- system("cls");
- // Vittoria del giocatore che ha fatto il turno
- cout << "Vittoria del giocatore " << giocatore << endl;
- filetto = true;
- }
- }
- // Controllo colonna per colonna
- for (colonna = 0; colonna < 3; colonna++)
- /*
- Compara gli elementi sulla stessa colonna, ex. X
- X
- vittoria in caso siano 3 uguali sulla stessa colonna X
- */
- if(table[0][colonna] == table[1][colonna] && table[1][colonna] == table[2][colonna])
- {
- if(table[0][colonna] != '-')
- {
- system("cls");
- // Vittoria del giocatore che ha fatto il turno
- cout << "Vittoria del giocatore " << giocatore << endl;
- filetto = true;
- }
- }
- // Controllo delle diagonali
- if(table[0][0] == table[1][1] && table[1][1] == table[2][2] ||
- table[2][0] == table[1][1] && table[1][1] == table[0][2])
- {
- if(table[1][1] != '-')
- {
- system("cls");
- // Vittoria del giocatore che ha fatto il turno
- cout << "Vittoria del giocatore " << giocatore << endl;
- filetto = true;
- }
- }
- // Aspetta che l'utente prema un tasto per continuare
- system("pause");
- // Pulisce lo schermo dal vecchio output
- system("cls");
- }while(!filetto);
- // Fine dell'esecuzione
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement