Problema con tris in C++

di il
10 risposte

Problema con tris in C++

Sto creando il mio promo "gioco" in cpp e sono alle basi. Nelle ultime righe dove avviene la scelta della lettera sto riscontrando un problema, ossia che non sostituisce la lettera (in questo caso la A)
#include <iostream>
#include <string>
#include <process.h>
using namespace std;
int main()
{
	char A = 'A', B = 'B', C = 'C', D = 'D', E = 'E', F = 'F', G = 'G', H = 'H', I = 'I', pronto, risposta, turno=1;
	string G1, G2;
	cout << "Benvenuto nel tris in C++" << endl;
	cout << "\n                  Made by x" << endl;
	do
	{
		cout << "\nPronti per iniziare a giocare? (S/n): ";
		cin >> pronto;
	}while((pronto != 'S') && (pronto != 's'));
	cout << "Ok, iniziamo:" << endl << "Giocatore 1 (X) come ti chiami? " << endl;
	cin >> G1;
	cout << "Giocatore 2 (O) come ti chiami? " << endl;
	cin >> G2;
	cout << "\nIniziamo: "<< G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
	cout << "|| " << 'A' << " || " << 'B' << " || " << 'C' << " ||" << endl;
	cout << "|| " << 'D' << " || " << 'E' << " || " << 'F' << " ||" << endl;
	cout << "|| " << 'G' << " || " << 'H' << " || " << 'I' << " ||" << endl;
	cin >> risposta;
	do
	{
		if(risposta==A)
		{
			while(A=='A')
			{
				if(turno%2==0)
				{
					turno=turno+1;
					A=='O';
					system("cls");
					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
					break;
				}
				else
				{
					turno=turno+1;
					A=='X';
					system("cls");
					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
					break;
				}
			}
		}
		else if(risposta==B)
		{
			do
			{
				if(turno%2==0)
				{
					//continuo
				}
				else
				{
					//continuo
				}
			}while(B=='B');
		}
	} while(turno<9);
	return 0;
}

10 Risposte

  • Re: Problema con tris in C++

    Non si capisce il problema spiegalo bene
  • Re: Problema con tris in C++

    Sto creando il gioco tris. Fino alla riga 24 tutto ok, dopo appena scelgo la lettera nello slot (per ora solo la A, visto che non ho aggiunto ancora le altre scelte) questa dovrebbe essere sostituita con la X, ma rimane sempre uguale come se la variabile A non diventasse uguale a 'X'. Mi sono riuscito a spiegare???
  • Re: Problema con tris in C++

    Hai controllato cosa contiene esattamente A dopo l'input?
  • Re: Problema con tris in C++

    Occhio anche a questi errori

    A=='O';

    A=='X';

    E questo ciclo

    while(A=='A')

    non ha nessuna utilità
  • Re: Problema con tris in C++

    oregon ha scritto:


    Occhio anche a questi errori

    A=='O';

    A=='X';

    E questo ciclo

    while(A=='A')

    non ha nessuna utilità
    Ok, grazie ho risolto. Come si fa a tornare ad esempio alla linea 25?
  • Re: Problema con tris in C++

    Quale sarebbe la linea 25? E perché?
  • Re: Problema con tris in C++

    La linea 25 sarebbe quella do dopo cin >> risposta; in modo da far sì che le scelte continuino fino a fine partita
  • Re: Problema con tris in C++

    La domanda va fatta all'interno del do seguente
  • Re: Problema con tris in C++

    oregon ha scritto:


    La domanda va fatta all'interno del do seguente
    Ah ok grazie mille, ho proseguito ma ho notato che il while per vedere se una casella è stata già usata (while(risposta=='A')) non funzione, idem per l'if per vedere se la partita è terminata (if((A=B=C)||(A=D=G)||(A=E=I)||(B=E=H)||(C=F=I)||(C=E=G)||(D=E=F)||(G=E=C))).
    #include <iostream>
    #include <string>
    #include <process.h>
    using namespace std;
    int main()
    {
    	char A = 'A', B = 'B', C = 'C', D = 'D', E = 'E', F = 'F', G = 'G', H = 'H', I = 'I', pronto, risposta, turno=1;
    	string G1, G2;
    	bool fine = false;
    	cout << "Benvenuto nel tris in C++" << endl;
    	cout << "\n                  Made by Angelo" << endl;
    	do
    	{
    		cout << "\nPronti per iniziare a giocare? (S/n): ";
    		cin >> pronto;
    	}while((pronto != 'S') && (pronto != 's'));
    	cout << "Ok, iniziamo:" << endl << "Giocatore 1 (X) come ti chiami? " << endl;
    	cin >> G1;
    	cout << "Giocatore 2 (O) come ti chiami? " << endl;
    	cin >> G2;
    	cout << "\nIniziamo: "<< G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    	cout << "|| " << 'A' << " || " << 'B' << " || " << 'C' << " ||" << endl;
    	cout << "|| " << 'D' << " || " << 'E' << " || " << 'F' << " ||" << endl;
    	cout << "|| " << 'G' << " || " << 'H' << " || " << 'I' << " ||" << endl;
    	cin >> risposta;
    	do
    	{
    		while(risposta=='A')
    		{
    			while(A='A')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					A='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					A='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='B')
    		{
    			while(B='B')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					B='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					B='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='C')
    		{
    			while(C='C')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					C='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					C='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='D')
    		{
    			while(D='D')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					D='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					D='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='E')
    		{
    			while(E='E')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					E='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					E='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='F')
    		{
    			while(F='F')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					F='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					F='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='G')
    		{
    			while(G='G')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					G='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					G='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='H')
    		{
    			while(H='H')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					H='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					H='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    			}
    		}
    		while(risposta=='I')
    		{
    			while(I='I')
    			{
    				if(turno%2==0)
    				{
    					turno=turno+1;
    					I='O';
    					system("cls");
    					cout << G1 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					break;
    				}
    				else
    				{
    					turno=turno+1;
    					I='X';
    					system("cls");
    					cout << G2 <<" tocca a te: scrivi la lettera dello slot che vuoi selezionare: " << endl;
    					cout << "|| " << A << " || " << B << " || " << C << " ||" << endl;
    					cout << "|| " << D << " || " << E << " || " << F << " ||" << endl;
    					cout << "|| " << G << " || " << H << " || " << I << " ||" << endl;
    					cin >> risposta;
    					
    					break;
    				}
    			}
    		}
    		if((A=B=C)||(A=D=G)||(A=E=I)||(B=E=H)||(C=F=I)||(C=E=G)||(D=E=F)||(G=E=C))
    		{
    			fine=true;
        	}
    	} while(fine=true);
    	return 0;
    }
  • Re: Problema con tris in C++

    (A=B=C)

    in C non significa quello che pensi. Si sceive
    A==B && B==C

    Devi studiare le basi prima di scrivere codice
Devi accedere o registrarti per scrivere nel forum
10 risposte