|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
[C++] gioco Tria
Ciao a tutti !! Ho un problemino con questo semplice programma
Gioco della tria : si ha una tabella 3 x 3 e si vince se si ha tre pedine in fila ( per riga, per colonna o in diagonale. Codice:
#include<Math.h>
#include<iostream.h>
#include<stdio.h>
#include <fstream.h>
#include <string.h>
#include <cstdlib>
void inizializza( int tab [3][3] );
void scrivi( int tab [3][3]);
void mossa1( int tab[3][3]);
void mossa2( int tab [3][3]);
bool controllaDUEinfila( int tab[3][3] );
bool pieno ( int tab [3][3]);
bool finitor ( int tab [3][3]);
bool finitoc ( int tab [3][3]);
bool finitod ( int tab [3][3]);
bool finito( int tab [3][3] );
// programma - variabili globali:
int casella [3][3];
int ri1, co1; // mossa giocatore
int ri2, co2; // mossa computer
int chi; // variabile posizionata nei test, dice chi vince
//random
int random() {
int x = rand()%3 ;
return x;
}
// inizializza
void inizializza( int tab [3][3] ) {
for(int ri = 0; ri < 3; ri++)
for(int co = 0; co < 3; co++)
tab[ri][co] = 0;
}
// scrivi
void scrivi( int tab [3][3] ){
cout<<"------------------tabella"<<endl;
for(int i = 0; i < 3; i++) { // tab.length
for(int j = 0; j < 3; j++) // tab[i].length
{ cout<<" "<<tab[i][j]; }
cout<<"\n";
} // for i
cout<<"-----------------------\n"<<endl;
}
// mossa1
void mossa1( int tab[3][3] ){
// mossa del giocatore, inserita da tastiera
bool mossaOk;
do{ // ripeti
scrivi(tab); //scrive tabella
cout<<("inserisci prima indice riga: ");
cin>>ri1;
cout<<("inserisci ora indice colonna: ");
cin>>co1 ;
mossaOk=true;
if( ri1<0 || ri1>2 || co1<0 || co1>2 )
{ cout<<("err in mossa");
mossaOk=false;
}
if ( tab[ri1][co1] != 0 )
{ cout<<("casella occupata\n\n");
mossaOk=false;
}
} while( ! mossaOk );
// ora mossa ok, memorizza questa mossa:
tab[ri1][co1]=1;
}
// mossa computer
void mossa2( int tab [3][3] ){
if ( controllaDUEinfila(tab)) { // due pedine utente in fila
if( tab[0][0]==tab[1][1]&& tab[1][1] ==1 && tab[2][2] ==0 ) {
ri2=2; co2=2; tab[ri2][co2]=2;
}//ifd
else if(tab[1][1]==tab[2][2]&& tab[1][1] ==1 && tab[0][0] ==0 ) {
ri2=0; co2=0; tab[ri2][co2]=2; }
else if( tab[0][2]==tab[1][1]&& tab[1][1] ==1 && tab[2][0] ==0) {
ri2=2; co2=0; tab[ri2][co2]=2; }
else if(tab[1][1]==tab[2][0]&& tab[1][1] ==1 && tab[0][2] ==0) {
ri2=0; co2=2; tab[ri2][co2]=2; }
} //if controlla
if ( controllaDUEinfila(tab)) { } // due pedine PC in fila
do {
ri2= random();
co2=random();
} while ( ( tab[ri2][co2]!= 0 ) );
tab[ri2][co2]=2; // memorizza la scelta computer
}
// finito riga
bool finitor ( int tab [3][3] ){
bool fin1,fin2,fin=false;
for(int r = 0; r < 3; r++) {
fin1 = tab[r][0]==tab[r][1];
fin2 = tab[r][1]==tab[r][2];
if( fin1 && fin2 && ( tab[r][1] !=0)) {
chi = tab[r][1];
return true; // riga piena
} // if
} // for
return false;
}
// pieno
bool pieno ( int tab [3][3] ){
if ( tab[3][3]>14 ){ return true;
}
return false;
}
// finito colonna
bool finitoc ( int tab [3][3] ){
bool fin1,fin2,fin=false;
for(int c = 0; c < 3; c++) {
fin1 = tab[0][c]==tab[1][c];
fin2 = tab[1][c]==tab[2][c];
if( fin1 && fin2 && ( tab[1][c] !=0)) {
chi = tab[1][c];
return true; // colonna piena
} // if
} // for
return fin;
}
// finito diagonale
bool finitod ( int tab [3][3] ){
bool fin1,fin2,fin=false;
fin1 = tab[0][0]==tab[1][1];
fin2 = tab[1][1]==tab[2][2];
if( fin1 && fin2 && ( tab[1][1] !=0) ) {
chi = tab[1][1];
return true; // diagonale piena
} // if
if ( ( tab[0][2]==tab[1][1] ) && ( tab[1][1]==tab[2][0] ) && ( tab[1][1] !=0) ) {
chi = tab[1][1];
return true;
} //if2
return fin ;
}
// CONTROLLO PERICOLO DI TRIA
bool controllaDUEinfila( int tab[3][3] ) {
if( (tab[0][0]==tab[1][1]) || (tab[1][1]==tab[2][2])&& ( tab[1][1] !=0 )) {
return true; // diagonale 1
} // if
if ( ( tab[0][2]==tab[1][1] ) && ( tab[1][1]==tab[2][0] ) && ( tab[1][1] !=0 ) ) {
return true;
} //// diagonale 2
else return false ;
}
// finito
bool finito( int tab [3][3] ){
bool fi, fip,fir,fic,fid;
fip = pieno( tab );
fir = finitor( tab );
fic = finitoc( tab );
fid = finitod( tab );
fi = fip || fir || fic || fid;
return fi;
}
//main del programma
int main( ) {
// crea una matrice di numeri interi 3 x 3;
inizializza( casella );
scrivi( casella );
do {
mossa1(casella);
// aspetta mossa del giocatore
if(finito(casella)) break;
// fai mossa calcolatore cioe' scegli a caso
// una casella libera:
mossa2( casella);
} while( ! finito( casella) );
scrivi( casella );
if( chi == 0 ) cout<<(" pieno, pari \n");
else if( chi == 1 ) cout<<(" HAI VINTO !! \n");
else cout<<(" HO VINTO IO !! \n");
getchar();
getchar();
return 0;
}
e successivamente nella mossa del pc ; Per adesso ho cercato di far controllare solo la diagonale, mi spiego: se la io ( utente ) ho due pedine nella diagonale il pc deve occupare la casella ( se non e già occupata ) cosi da impedirmi di fare tria. Sarà sicuramente un problema stupide però non riesco a venirne a capo CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
#2 |
|
Registered User
Iscritto dal: Aug 2006
Messaggi: 305
|
e il problema quale sarebbe?
Procedere in questo modo porta ad avere un programma anelastico, e non "intelligente". se stai cercando un algoritmo per risolvere il gioco del tris, ti conviene dare un'occhiata alla teoria dei giochi, un ramo dell'intelligenza artificiale. Ultima modifica di Barbalbero : 04-08-2009 alle 23:16. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Quote:
CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
Ora arrivo io e dico l'eresia di turno
... e se provassi a considerare il problema al rovescio? overo in base a dove hai posizionato il pezzo controlli se su quella riga o quella colonna e casomai le diagonali vi è la possibilità di fare il tris, se si il pc la intercetta... se per caso questi tre controlli risultano falsi gli fai mettere il pezzo in maniera randomica... P.S. no non ho mai toccato l'argomento teoria dei giochi |
|
|
|
|
|
#5 | |
|
Junior Member
Iscritto dal: Jun 2009
Messaggi: 2
|
OT su TdG
Quote:
Volevo osservare che è riduttivo ritenere la TdG un ramo dell'intelligenza artificiale. Ci sono delle interessanti intersezioni fra TdG e intelligenza artificiale, ma la TdG è anche altro, molto altro: principalmente fornisce un modello chiave per la teoria economica, e in genere per le scienze sociali, ma ci sono anche i giochi evolutivi, e interessanti applicazioni in filosofia, etica e logica. Per non parlare dei "giochi topologici". Ultima modifica di Fioravante Patrone : 05-08-2009 alle 08:12. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Quote:
mi controlla se ci sono due pedine in fila ( indifferentemente se pedina del pc e pedina del giocatore ) !! E nella void mossa2( int tab [3][3] ){ // ovvero mossa del pc mettevo due if uno mi controllava se cerano due pedine giocatero in fila ( se vero ) metteva la pedina in modo da bloccare il tris ! il secondo if mi controllava se cerano 2 pedine del pc in fila ( se vero ) metteva la pedina in modo da far tris. Il problema e che non so dove sto sbagliando ? sarà un problema di codice ... magari una sciocchezza Se qualche anima pia me lo controlla e mi segnala l'errore o errori gli sarei molto grato CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Dov'è che il tuo programma fallisce? Per tutto il resto, c'è Backtracking
__________________
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Quote:
tnx. Allora il mio programma non riesce a controllare se due pedine sono in fila ovvero se metto due pedine in fila il pc non mi blocca la combinazione per fare tria. Mette rempre a random. CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Ma 'pedine in fila' vuol dire solo in diagonale (cioè quello per cui è scritto il codice) oppure vuoi dire che non funziona per file non in diagonale e quindi vuoi aggiungere questo tipo di controllo?
__________________
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Quote:
Ho fatto una piccola modifica alla random !! Codice:
int random() {
srand(time(0)) ;
int x = rand()%3 ;
return x;
}
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Codice:
bool controllaDUEinfila( int tab[3][3] ) {
if( (tab[0][0]==tab[1][1]) || (tab[1][1]==tab[2][2])&& ( tab[1][1] !=0 )) {
return true; // diagonale 1
} // if
if ( ( tab[0][2]==tab[1][1] ) && ( tab[1][1]==tab[2][0] ) && ( tab[1][1] !=0 ) ) {
return true;
} //// diagonale 2
else return false ;
}
Inoltre io metterei un paio di parentesi in più, non ricordandomi la precedenza degli operatori booleani
__________________
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Quote:
Ci ho smanettato un po e sembra che funzioni ... Codice:
void inizializza( int tab [3][3] );
void scrivi( int tab [3][3]);
void mossa1( int tab[3][3]);
void mossa2( int tab [3][3]);
bool controllaDUEinfila( int tab[3][3] );
bool pieno ( int tab [3][3]);
bool finitor ( int tab [3][3]);
bool finitoc ( int tab [3][3]);
bool finitod ( int tab [3][3]);
bool finito( int tab [3][3] );
bool controllaDUEinfila1( int tab[3][3]);
// programma - variabili globali:
int casella [3][3];
int ri1, co1; // mossa giocatore
int ri2, co2; // mossa computer
int chi; // variabile posizionata nei test, dice chi vince
//random
int random() {
srand(time(0)) ;
int x = rand()%3 ;
return x;
}
// inizializza
void inizializza( int tab [3][3] ) {
for(int ri = 0; ri < 3; ri++)
for(int co = 0; co < 3; co++)
tab[ri][co] = 0;
}
// scrivi
void scrivi( int tab [3][3] ){
cout<<"------------------tabella"<<endl;
for(int i = 0; i < 3; i++) { // tab.length
for(int j = 0; j < 3; j++) // tab[i].length
{ cout<<" "<<tab[i][j]; }
cout<<"\n";
} // for i
cout<<"-----------------------\n"<<endl;
}
// mossa1
void mossa1( int tab[3][3] ){
// mossa del giocatore, inserita da tastiera
bool mossaOk;
do{ // ripeti
scrivi(tab); //scrive tabella
cout<<("inserisci prima indice riga: ");
cin>>ri1;
cout<<("inserisci ora indice colonna: ");
cin>>co1 ;
mossaOk=true;
if( ri1<0 || ri1>2 || co1<0 || co1>2 )
{ cout<<("err in mossa");
mossaOk=false;
}
if ( tab[ri1][co1] != 0 )
{ cout<<("casella occupata\n\n");
mossaOk=false;
}
} while( ! mossaOk );
// ora mossa ok, memorizza questa mossa:
tab[ri1][co1]=1;
}
// mossa2
void mossa2( int tab [3][3] ){
if ( controllaDUEinfila(tab)==true) {
if ( (tab[0][0]==tab[0][1] && tab[0][1] ==1) && tab[0][2] ==0 ){
ri2=0; co2=2;
}//ifr1a
else if ( (tab[1][0]==tab[1][1] && tab[1][1] ==1) && tab[1][2] ==0 ){
ri2=1; co2=2;
}//ifr1b
else if ( (tab[2][0]==tab[2][1] && tab[2][1] ==1) && tab[2][2] ==0 ){
ri2=2; co2=2;
}//ifr1c
else if ( (tab[0][1]==tab[0][2] && tab[0][1] ==1) && tab[0][2] ==0 ) {
ri2=0; co2=0;
}//ifr2a
else if ( (tab[1][1]==tab[1][2] && tab[1][1] ==1) && tab[1][2] ==0 ) {
ri2=1; co2=0;
}//ifr2b
else if ( (tab[2][1]==tab[2][2] && tab[2][1] ==1) && tab[2][2] ==0 ) {
ri2=2; co2=0;
}//ifr2c
else if ( (tab[0][0]==tab[1][0]&& tab[1][0] ==1) && tab[2][0] ==0) {
ri2=2; co2=0;
}//ifc1a
else if ( (tab[0][1]==tab[1][1]&& tab[1][1] ==1) && tab[2][1] ==0) {
ri2=2; co2=1;
}//ifc1b
else if ( (tab[0][2]==tab[1][2]&& tab[1][2] ==1) && tab[2][2] ==0) {
ri2=2; co2=2;
}//ifc1c
else if ( (tab[1][0]==tab[2][0]&& tab[1][0] ==1) && tab[0][0] ==0) {
ri2=0; co2=0;
} //ifc2a
else if ( (tab[1][1]==tab[2][1]&& tab[1][1] ==1) && tab[0][1] ==0) {
ri2=0; co2=1;
} //ifc2b
else if ( (tab[1][2]==tab[2][2]&& tab[1][2] ==1) && tab[0][2] ==0) {
ri2=0; co2=2;
} //ifc2c
else if( (tab[0][0]==tab[1][1]&& tab[1][1] ==1) && tab[2][2] ==0 ) {
ri2=2; co2=2;
}//ifd1
else if((tab[1][1]==tab[2][2]&& tab[1][1] ==1) && tab[0][0] ==0 ) {
ri2=0; co2=0; }//ifd2
else if( (tab[0][2]==tab[1][1]&& tab[1][1] ==1) && tab[2][0] ==0) {
ri2=2; co2=0; }//ifd3
else if((tab[1][1]==tab[2][0]&& tab[1][1] ==1) && tab[0][2] ==0) {
ri2=0; co2=2; }//ifd4
} //if controlla
if ( controllaDUEinfila1(tab)==true) { //controlla mie pedine
if ( (tab[0][0]==tab[0][1] && tab[0][1] ==2) && tab[0][2] ==0 ){
ri2=0; co2=2;
}//ifr1a
else if ( (tab[1][0]==tab[1][1] && tab[1][1] ==2) && tab[1][2] ==0 ){
ri2=1; co2=2;
}//ifr1b
else if ( (tab[2][0]==tab[2][1] && tab[2][1] ==2) && tab[2][2] ==0 ){
ri2=2; co2=2;
}//ifr1c
else if ( (tab[0][1]==tab[0][2] && tab[0][1] ==2) && tab[0][2] ==0 ) {
ri2=0; co2=0;
}//ifr2a
else if ( (tab[1][1]==tab[1][2] && tab[1][1] ==2) && tab[1][2] ==0 ) {
ri2=1; co2=0;
}//ifr2b
else if ( (tab[2][1]==tab[2][2] && tab[2][1] ==2) && tab[2][2] ==0 ) {
ri2=2; co2=0;
}//ifr2c
else if ( (tab[0][0]==tab[1][0]&& tab[1][0] ==2) && tab[2][0] ==0) {
ri2=2; co2=0;
}//ifc1a
else if ( (tab[0][1]==tab[1][1]&& tab[1][1] ==2) && tab[2][1] ==0) {
ri2=2; co2=1;
}//ifc1b
else if ( (tab[0][2]==tab[1][2]&& tab[1][2] ==2) && tab[2][2] ==0) {
ri2=2; co2=2;
}//ifc1c
else if ( (tab[1][0]==tab[2][0]&& tab[1][0] ==2) && tab[0][0] ==0) {
ri2=0; co2=0;
} //ifc2a
else if ( (tab[1][1]==tab[2][1]&& tab[1][1] ==2) && tab[0][1] ==0) {
ri2=0; co2=1;
} //ifc2b
else if ( (tab[1][2]==tab[2][2]&& tab[1][2] ==2) && tab[0][2] ==0) {
ri2=0; co2=2;
} //ifc2c
else if( (tab[0][0]==tab[1][1]&& tab[1][1] ==2) && tab[2][2] ==0 ) {
ri2=2; co2=2;
}//ifd1
else if(tab[1][1]==tab[2][2]&& tab[1][1] ==2 && tab[0][0] ==0 ) {
ri2=0; co2=0; }//ifd2
else if( tab[0][2]==tab[1][1]&& tab[1][1] ==2 && tab[2][0] ==0) {
ri2=2; co2=0; }//ifd3
else if(tab[1][1]==tab[2][0]&& tab[1][1] ==2 && tab[0][2] ==0) {
ri2=0; co2=2; }//ifd4
}
while ( ( tab[ri2][co2]!= 0 ) ) {
ri2= random();
co2=random();
}
tab[ri2][co2]=2; // memorizza la scelta computer
}
// finito riga
bool finitor ( int tab [3][3] ){
bool fin1,fin2,fin=false;
for(int r = 0; r < 3; r++) {
fin1 = tab[r][0]==tab[r][1];
fin2 = tab[r][1]==tab[r][2];
if( fin1 && fin2 && ( tab[r][1] !=0)) {
chi = tab[r][1];
return true; // riga piena
} // if
} // for
return false;
}
// pieno
bool pieno ( int tab [3][3] ){
if ( tab[3][3]>14 ){ return true;
}
return false;
}
// finito colonna
bool finitoc ( int tab [3][3] ){
bool fin1,fin2,fin=false;
for(int c = 0; c < 3; c++) {
fin1 = tab[0][c]==tab[1][c];
fin2 = tab[1][c]==tab[2][c];
if( fin1 && fin2 && ( tab[1][c] !=0)) {
chi = tab[1][c];
return true; // colonna piena
} // if
} // for
return fin;
}
// finito diagonale
bool finitod ( int tab [3][3] ){
bool fin1,fin2,fin=false;
fin1 = tab[0][0]==tab[1][1];
fin2 = tab[1][1]==tab[2][2];
if( fin1 && fin2 && ( tab[1][1] !=0) ) {
chi = tab[1][1];
return true; // diagonale piena
} // if
if ( ( tab[0][2]==tab[1][1] ) && ( tab[1][1]==tab[2][0] ) && ( tab[1][1] !=0) ) {
chi = tab[1][1];
return true;
} //if2
return fin ;
}
// CONTROLLO PERICOLO DI TRIA
bool controllaDUEinfila( int tab[3][3] ) {
if( ((tab[0][0]==tab[0][1]) || (tab[0][1]==tab[0][2])) && ( tab[0][1] !=0 ) ) {
return true; // riga
} // if
if(((tab[1][0]==tab[1][1]) || (tab[1][1]==tab[1][2])) && ( tab[1][1] !=0 ) ) {
return true; // riga
} // if
if(((tab[2][0]==tab[2][1]) || (tab[2][1]==tab[2][2])) && ( tab[2][1] !=0 ) ) {
return true; // riga
} // if
if( ((tab[0][0]==tab[1][0]) || (tab[1][0]==tab[2][0])) && ( tab[1][0] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][1]==tab[1][1]) || (tab[1][1]==tab[2][1])) && ( tab[1][1] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][2]==tab[1][2]) || (tab[1][2]==tab[2][2])) && ( tab[1][2] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][0]==tab[1][1]) || (tab[1][1]==tab[2][2])) && ( tab[1][1] !=0 )) {
return true; // diagonale 1
} // if
if ( (( tab[0][2]==tab[1][1] ) || ( tab[1][1]==tab[2][0] )) && ( tab[1][1] !=0 ) ) {
return true;
} //// diagonale 2
else return false ;
}
bool controllaDUEinfila1( int tab[3][3] ) {
if( ((tab[0][0]==tab[0][1]) || (tab[0][1]==tab[0][2])) && ( tab[0][1] !=0 ) ) {
return true; // riga
} // if
if(((tab[1][0]==tab[1][1]) || (tab[1][1]==tab[1][2])) && ( tab[1][1] !=0 ) ) {
return true; // riga
} // if
if(((tab[2][0]==tab[2][1]) || (tab[2][1]==tab[2][2])) && ( tab[2][1] !=0 ) ) {
return true; // riga
} // if
if( ((tab[0][0]==tab[1][0]) || (tab[1][0]==tab[2][0])) && ( tab[1][0] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][1]==tab[1][1]) || (tab[1][1]==tab[2][1])) && ( tab[1][1] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][2]==tab[1][2]) || (tab[1][2]==tab[2][2])) && ( tab[1][2] !=0 ) ) {
return true; //colonna
} // if
if( ((tab[0][0]==tab[1][1]) || (tab[1][1]==tab[2][2])) && ( tab[1][1] !=0 )) {
return true; // diagonale 1
} // if
if ( (( tab[0][2]==tab[1][1] ) || ( tab[1][1]==tab[2][0] )) && ( tab[1][1] !=0 ) ) {
return true;
} //// diagonale 2
else return false ;
}
// finito
bool finito( int tab [3][3] ){
bool fi, fip,fir,fic,fid;
fip = pieno( tab );
fir = finitor( tab );
fic = finitoc( tab );
fid = finitod( tab );
fi = fip || fir || fic || fid;
return fi;
}
//main del programma
int main( ) {
// crea una matrice di numeri interi 3 x 3;
inizializza( casella );
scrivi( casella );
do {
mossa1(casella);
// aspetta mossa del giocatore
if(finito(casella)) break;
// fai mossa calcolatore cioe' scegli a caso
// una casella libera:
mossa2( casella);
} while( ! finito( casella) );
scrivi( casella );
if( chi == 0 ) cout<<(" pieno, pari \n");
else if( chi == 1 ) cout<<(" HAI VINTO !! \n");
else cout<<(" HO VINTO IO !! \n");
getchar();
getchar();
return 0;
}
Codice:
bool pieno ( int tab [3][3] ){
if ( tab[3][3]>14 ){ return true;
}
return false;
}
CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
up
[/code] Ho una domanda per tabella piena io ho fatto cosi : Codice:
bool pieno ( int tab [3][3] ){
if ( tab[3][3]>14 ){ return true;
}
return false;
}
CiauZ
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Trieste/Trst
Messaggi: 960
|
Fatto da solo
Codice:
bool pieno ( int tab [3][3] ){
for(int r = 0; r < 3; r++) {
if ( tab[r][1] ==0 ){ return false;
}
else if ( tab[r][2] ==0 ){ return false;
}
else if ( tab[r][3] ==0 ){ return false;
} }
return true;
}
Bye
__________________
Se ti viene voglia di lavorare, siediti vedrai che ti passa
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:11.












... e se provassi a considerare il problema al rovescio? overo in base a dove hai posizionato il pezzo controlli se su quella riga o quella colonna e casomai le diagonali vi è la possibilità di fare il tris, se si il pc la intercetta... se per caso questi tre controlli risultano falsi gli fai mettere il pezzo in maniera randomica...
tnx. Allora il mio programma non riesce a controllare se due pedine sono in fila ovvero se metto due pedine in fila il pc non mi blocca la combinazione per fare tria. Mette rempre a random.








