Dopo mesi di laboriosa ricerca le indagini del commissario Montalbano sull'efferato delitto consumatosi la notte di ferragosto al lungomare di Marinella, si stringono attorno a due principali sospettati: l'Ing.Pino Arcidiacono detto il Brancata, per il suo portamento da capomafa; e il geometra Minuzzo Giarratana, detto il Carcannazzu per il suo raccapricciante aspetto funereo. Entrambi hanno un forte movente.
Un pizzino di carta ritrovato nella cantina del Brancata sembra però essere la chiave per incastrare uno dei due sospettati. Una frase scritta a penna attira l'attenzione del commissario: “chi perde più partite dovrà farlo...” frmato dal Carcannazzu.
Accanto il pizzino un foglio di carta con una lunga sequenza di mosse al gioco ZeroPer. Forse quel foglio di carta nasconde il nome dell'assassino.
Si aiuti il Commissario Montalbano a risolvere il suo caso fornendo un programma C++ che prenda in input il fle contenente la sequenza di mosse al gioco ZeroPer (conosciuto anche come TicTacToe) ed individui il giocatore che ha perso più partite. Si supponga che la prima mossa di ogni nuova partita venga fatta sempre dal Brancata.
Input
Si consideri la scacchiera come una matrice 3x3 con indice iniziale pari a 0. Il fle di input contiene la sequenza di mosse al gioco ZeroPer. Ogni mossa è costituita da una coppia di coordinate divise da una virgola e racchiuse tra parentesi tonde. Le coordinate identifcano la casella in cui il giocatore posiziona il suo simbolo. Due mosse distinte possono essere separate da uno spazio o da un carattere di ritorno a capo (il numero di mosse per ogni riga è casuale). Non è presente alcuna separazione per distinguere le mosse di due partite diverse. Dopo la mossa che identifca la fne di una partita segue la mossa di inizio della partita successiva.
Input.txt :
codice:
(1,1) (0,1) (1,0) (2,1) (1,2) (1,2)
(2,0) (0,1) (0,2) (1,1) (2,2) (2,1) (1,0) (1,2)
(2,0)
(0,0) (1,1) (0,2) (2,1)
(2,2)
(2,2) (1,0)
(2,1) (1,2) (0,1) (0,2) (2,0) (1,1) (2,0)
(0,2) (2,1) (0,0) (0,1) (1,2) (2,2) (1,2) (0,0)
(1,1) (0,2) (2,0)
(0,1) (2,2)
Output
Il fle di output contiene la lista dei risultati di ogni singola partita, uno per riga. Devono essere segnalate anche le partite fnite con un risultato pari. Le ultime due righe forniscono il numero di partite vinte da ciascuno dei due indiziati, uno per riga (il reseconto del Brancata precede il resoconto del Carcannazzu).
Output.txt :
codice:
partita n.1 vinta dal Brancata
partita n.2 vinta dal Brancata
partita n.3 vinta dal Carcannazzu
partita n.4 finita pari
partita n.5 vinta dal Carcannazzu
partita n.6 vinta dal Carcannazzu
partita n.7 vinta dal Brancata
partita n.8 vinta dal Brancata
Il Brancata ha vinto 4 partite
Il Carcannazzu ha vinto 3 partite
Non riesco a capire come fare il tictactoe dal file çWç
codice:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void printmatrix(int matrix[][3], int rows)
{
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < 3; col++)
cout << matrix[row][col] << " ";
cout << endl;
}
}
int main()
{
ifstream input;
ofstream output;
input.open("input.txt"); // Apro il file di input
output.open("output.txt"); // Creo o sovrascrivo il file di output
string posizione;
int Brancata = 1;
int Carcannazzu = 2;
int x = 0 ;
int scacchiera[3][3] = { 0 };// Scacchiera = matrice 3x3 con indice iniziale pari a 0
//Inizia sempre 1
//1 = Brancata
//2 = Carcannazzu
while (!input.eof())
{
input >> posizione;
if (posizione == "(0,0)")
{
scacchiera[0][0] = x;
}
if (posizione == "(0,1)")
{
scacchiera[0][1] = x;
}
if (posizione == "(0,2)")
{
scacchiera[0][2] = x;
}
if (posizione == "(1,0)")
{
scacchiera[1][0] = x;
}
if (posizione == "(1,1)")
{
scacchiera[1][1] = x;
}
if (posizione == "(1,2)")
{
scacchiera[1][2] = x;
}
if (posizione == "(2,0)")
{
scacchiera[2][0] = x;
}
if (posizione == "(2,1)")
{
scacchiera[2][1] = x;
}
if (posizione == "(2,2)")
{
scacchiera[2][2] = x;
}
}
printmatrix(scacchiera, 3);
system("pause");
return 0;
}