giovedì 23 ottobre 2008

giocox

/*gioco della piramide rovesciata*/
#include
/*variabili*/
int board[17];
char simbol[2]={'|','+'};
int i=0;
int exitGame=0;
int numero;
/*dichiarazioni delle funzioni*/
void stampa();
int controlloDati(int datoA, int datoB);
void mossaUmano();
void mossaPc();
int vincitore();
/*funzione principale*/
int main(){
stampa();
do{
printf("\n");
if(vincitore()==1){
printf("\n HAI PERSO!");
printf("\n scrivi qualcosa per uscire dal programma ");
scanf("%d", &numero);
exitGame=1;
}
if(vincitore()==0){
mossaUmano();
stampa();
}
if(vincitore()==1){
printf("\n HAI VINTO!");
printf("\n scrivi qualcosa per uscire dal programma ");
scanf("%d", &numero);
exitGame=1;
}

if(vincitore()==0){
mossaPc();
stampa();
printf("\n");
}


}while(exitGame==0);

}
/*funzione stampa*/
void stampa(){
int i=0;
for(i=1;i<17;i++){
printf("%c",simbol[board[i]]);
if(i==7){
printf("\n ");
}
if(i==12){
printf(" \n ");
}
if(i==15){
printf(" \n ");
}
if(i==16){
printf("\n");
}
}
}
/*funzione controlloDati*/
int controlloDati( int datoA, int datoB){

if((datoA<1)&&(datob>16)){
printf("\n errore \n");
return 1;
}

if((datoA>0)&&(datoA<8)){
if((datoB<1)||(datob>7)){
printf("\n errore \n");
return 1;
}
}
if((datoA>7)&&(datoA<13)){
if((datoB<8)||(datob>12)){
printf("\n errore \n");
return 1;
}
}
if((datoA>12)&&(datoA<16)){
if((datoB<13)||(datob>15)){
printf("\n errore \n");
return 1;
}
}
return 0;
}
/*funzione mossaUmano*/
void mossaUmano(){
int datoA;
int datoB;
int i=0;
int controllo=0;

printf("da che punto vuoi iniziare a cancellare le astine?");
scanf("%d",&datoA);
printf("da che punto voui terminare?");
scanf("%d",&datoB);

controllo=controlloDati(datoA, datoB);
if(controllo==1){
mossaUmano();
return;
}
else{
for(i=datoA;i<(datoB+1);i++){
board[i]=1;
}
}
}
/*funzione mossaPc*/
void mossaPc(){
int i=0;
for(i=1;i<17;i++){
if(board[i]==0){
board[i]=1;
i=17;
}
}
}
/*funzione vincitore*/
int vincitore(){
int i;
int caunt=0;
for(i=1;i<17;i++){
if(board[i]==1){
caunt++;
}
}
if((caunt==15)||(caunt>15)){
return 1;
}
return 0;
}