Exemple #1
0
  int main(int argc, char *argv[])
  { 
    if (def==0){
             strcpy(players[0].nick,"Giocatore1");
             }
 do{ 
     stampamenprinc();             //chiama la funzione stampamenprinc
     scanf("%d",&scelta);          //legge la scelta dell'utente
     getchar();
     
  switch (scelta){
         case 1:
              system("cls");
              visimpo(tipo,num_gio,lun_cod,elem_cod,tentativi,players);  //chiamo la funzione visimpo
              printf("\n\nAttendere, configurazione nuova partita in corso...");
              Sleep(3000);
              system("cls");
              printf("MASTERMIND --  NUOVA PARTITA\n\n");
              //Se Modalità Umano vs Umano
              if(tipo==1){
                          printf("\nAttendere, il PC sta sorteggiando il codificatore...\n\n");
                          Sleep(4000);
                          estratto=estrazionecod(players,num_gio);     //Estrazione Codificatore
                          strcpy(codificatore.nick,players[estratto].nick);    //Copia Nick Codificatore
                          for( j = estratto; j < num_gio-1; ++j )   //Rimuovi Codificatore dal Vettore Giocatori
                          players[j] = players[j+1];
                          printf("%s Inserisci il codice segreto:\n\n",codificatore.nick);
                          for(i=0;i<lun_cod;i++){         
                             do{
                                printf ("Digita un numero qualsiasi [0 - %d] nella %d posizione: ",elem_cod-1,i+1);
                                scanf ("%d",&cod[i]);
                                }                                   //Acquisizione del Codice Segreto
                             while (cod[i]<0 || cod[i]>elem_cod-1);}               //controlla se i valori inseriti nel vettore "cod" sono accettabili.
           printf ("\nL'iserimento del codice e' avvenuto con successo !!\n\n");
           printf ("Il codice inserito e' il seguente: ");
           for (i=0;i<lun_cod;i++){
                             printf ("%5d",cod[i]);                    //mostra a video il codice inserito
                             }
                             printf ("\n\n** Si consiglia di prendere nota del codice **\n\n");
                             system ("PAUSE");
                             system ("CLS");
                                   }
                                //Se modalità Umano vs PC   
                           else{
                                strcpy(codificatore.nick,"CPU");          //Assegnazione del Codificatore alla CPU
                          printf("\nAttendere, la CPU sar\205 il codificatore...\n\n");
                          Sleep(3000);
                          printf("\nAttendere, la CPU sta inserendo il codice segreto...\n\n");
                          Sleep(3000);
                          //Generazione Random del Codice Segreto dalla CPU
                          srand (time(NULL));
                                 for (i=0;i<lun_cod;i++){
                                 cod[i]=rand()%elem_cod;
                              }
                                                  
           printf ("\nL'iserimento del codice e' avvenuto con successo !!\n\n");
           printf ("Il codice inserito e' il seguente: ");
           for (i=0;i<lun_cod;i++){
                             printf ("\t*",cod[i]);   //mostra a video il codice inserito
                             }
                             printf ("\n\n** Si consiglia di prendere nota del codice **\n\n");
                             system ("PAUSE");
                             system ("CLS");
                             }
                             
   //Chiamata alla Funzione Partita
    partita(cod,dec,lun_cod,tentativi,elem_cod,num_gio,players,codificatore,giocatoriclass,gv,gc,&pass);
  //Chiamata alla Funzione Classifica
    classifica(giocatoriclass,pass);  
  //Chiamata alla Funzione Top Ten
    topten(giocatoriclass,pass);
    
    printf("\n");  
    initialize(&listPointer);          //Inizializza Lista
    //Chiamata alla Funzione Leggi da File per generazione e stampa della top ten
    LeggiDaFile(giocatoritop,&listPointer);             
    //Chiamata alla Funzione Rsest Impostazioni per resettare le impostazioni
    resetimpo(players,&num_gio,&tentativi,&lun_cod,&elem_cod,&tipo,&def);  
    
    main(argc,argv);           
            break;
              
         case 2:
    //Chiamata alla funzione Carica per caricare una partita salavata     
    carica(cod,dec,lun_cod,tentativi,elem_cod,num_gio,players,codificatore,giocatoriclass,gv,gc,giocatoritop,&tipo,&def); 
    initialize(&listPointer);          //Inizializza Lista
    LeggiDaFile(giocatoritop,&listPointer); 
    //Chiamata alla Funzione Rsest Impostazioni per resettare le impostazioni
    resetimpo(players,&num_gio,&tentativi,&lun_cod,&elem_cod,&tipo,&def);        
         break;
              
         case 3:
    //Chiamata alla Funzione Impostazioni per gestire le Impostazioni Modificabili dall'Utente       
    impostazioni(players,&num_gio,&tentativi,&lun_cod,&elem_cod,&tipo,&def);
              break;
              
         case 4:
              initialize(&listPointer);          //Inizializza Lista
              //Stampa a Video della Top Ten
              system("cls");
              LeggiDaFile(giocatoritop,&listPointer); 
              main(argc,argv);
              break;
              
         case 5:
              //Uscita
              system("cls");
              printf("#######     ##   ##   #######       ##     ##\n");
              printf("##    ##     ## ##    ##            ##      ##\n");
              printf("##    ##      ###     ##                     ##\n");
              printf("########      ##      ####                   ##\n");
              printf("##    ##     ##       ##                     ##\n");
              printf("##    ##    ##        ##            ##      ##\n");
              printf("#######    ##         #######       ##     ##\n");
              printf("\nIl Gioco \212 stato realizzato da:\n\n");
              printf("\t - Giuseppe Pace\n\n");
              printf("\t - Cosimo Bellini\n\n");
              system("PAUSE");	
              return 0;
              break;
              
         default://Controllo sulla Scelta del Menu Principale
               printf("Valore errato\n\nPremere Invio ed effettuare nuovamente la scelta.\n");
              }
              getchar();
              }while(0<scelta<5);    
         
  system("PAUSE");	
  return 0;
}
Exemple #2
0
/* Be careful not to call panic from here! */
void
done(const char *st1)
{

#ifdef WIZARD
	if(wizard && *st1 == 'd'){
		u.uswldtim = 0;
		if(u.uhpmax < 0) u.uhpmax = 100;	/* arbitrary */
		u.uhp = u.uhpmax;
		pline("For some reason you are still alive.");
		flags.move = 0;
		if(multi > 0) multi = 0; else multi = -1;
		flags.botl = 1;
		return;
	}
#endif /* WIZARD */
	signal(SIGINT, done_intr);
	signal(SIGQUIT, done_intr);
	signal(SIGHUP, done_hangup);
	if(*st1 == 'q' && u.uhp < 1){
		st1 = "died";
		killer = "quit while already on Charon's boat";
	}
	if(*st1 == 's') killer = "starvation"; else
	if(*st1 == 'd' && st1[1] == 'r') killer = "drowning"; else
	if(*st1 == 'p') killer = "panic"; else
	if(*st1 == 't') killer = "trickery"; else
	if(!index("bcd", *st1)) killer = st1;
	paybill();
	clearlocks();
	if(flags.toplin == 1) more();
	if(index("bcds", *st1)){
#ifdef WIZARD
	    if(!wizard)
#endif /* WIZARD */
		savebones();
		if(!flags.notombstone)
			outrip();
	}
	if(*st1 == 'c') killer = st1;		/* after outrip() */
	settty(NULL);				/* does a clear_screen() */
	if(!done_stopprint)
		printf("Goodbye %s %s...\n\n", pl_character, plname);
	{ long int tmp;
	  tmp = u.ugold - u.ugold0;
	  if(tmp < 0)
		tmp = 0;
	  if(*st1 == 'd' || *st1 == 'b')
		tmp -= tmp/10;
	  u.urexp += tmp;
	  u.urexp += 50 * maxdlevel;
	  if(maxdlevel > 20)
		u.urexp += 1000*((maxdlevel > 30) ? 10 : maxdlevel - 20);
	}
	if(*st1 == 'e') {
		struct monst *mtmp;
		struct obj *otmp;
		int i;
		unsigned worthlessct = 0;
		boolean has_amulet = FALSE;

		killer = st1;
		keepdogs();
		mtmp = mydogs;
		if(mtmp) {
			if(!done_stopprint) printf("You");
			while(mtmp) {
				if(!done_stopprint)
					printf(" and %s", monnam(mtmp));
				if(mtmp->mtame)
					u.urexp += mtmp->mhp;
				mtmp = mtmp->nmon;
			}
			if(!done_stopprint)
		    printf("\nescaped from the dungeon with %ld points,\n",
			u.urexp);
		} else
		if(!done_stopprint)
		  printf("You escaped from the dungeon with %ld points,\n",
		    u.urexp);
		for(otmp = invent; otmp; otmp = otmp->nobj) {
			if(otmp->olet == GEM_SYM){
				i = otmp->quan*objects[otmp->otyp].g_val;
				if(i == 0) {
					worthlessct += otmp->quan;
					continue;
				}
				u.urexp += i;
				if(!done_stopprint)
				  printf("\t%s (worth %d Zorkmids),\n",
				    doname(otmp), i);
			} else if(otmp->olet == AMULET_SYM) {
				i = (otmp->spe < 0) ? 2 : 5000;
				u.urexp += i;
				if(!done_stopprint)
				  printf("\t%s (worth %d Zorkmids),\n",
				    doname(otmp), i);
				if(otmp->spe >= 0) {
					has_amulet = TRUE;
					killer = "escaped (with amulet)";
				}
			}
		}
		if(worthlessct) if(!done_stopprint)
		  printf("\t%u worthless piece%s of coloured glass,\n",
		  worthlessct, plur(worthlessct));
		if(has_amulet) u.urexp *= 2;
	} else
		if(!done_stopprint)
		  printf("You %s on dungeon level %d with %ld points,\n",
		    st1, dlevel, u.urexp);
	if(!done_stopprint)
	  printf("and %ld piece%s of gold, after %ld move%s.\n",
	    u.ugold, plur(u.ugold), moves, plur(moves));
	if(!done_stopprint)
  printf("You were level %u with a maximum of %d hit points when you %s.\n",
	    u.ulevel, u.uhpmax, st1);
	if(*st1 == 'e' && !done_stopprint){
		getret();	/* all those pieces of coloured glass ... */
		cls();
	}
#ifdef WIZARD
	if(!wizard)
#endif /* WIZARD */
		topten();
	if(done_stopprint) printf("\n\n");
	exit(0);
}
Exemple #3
0
//Funzione di Caricamento da Salvataggio 
 void carica (int cod[], int dec[],int lun_cod, int tentativi,int elem_cod, int num_gio, giocatore players[], giocatore codificatore, giocatore giocatoriclass[],int gv,int gc, giocatore giocatoritop[], int *tipo, int *def)
{        
          FILE *fd;
            int i,pass;
            
     system("cls");
    printf("  ##    ###### ##      #####  ## ##   ## #####\n");
    printf("  ##    ##  ## ####    ##  ## ## #### ## ##\n");
    printf("  ##    ##  ## ## ##   ##  ## ## ## #### ## ###\n");
    printf("  ##    ##  ## ######  ##  ## ## ##  ### ## ##\n");
    printf("  ##### ###### ##   ## #####  ## ##   ## #####  ##\n");
    sleep (800);
    system("cls");
    printf("  ##    ###### ##      #####  ## ##   ## #####\n");
    printf("  ##    ##  ## ####    ##  ## ## #### ## ##\n");
    printf("  ##    ##  ## ## ##   ##  ## ## ## #### ## ###\n");
    printf("  ##    ##  ## ######  ##  ## ## ##  ### ## ##\n");
    printf("  ##### ###### ##   ## #####  ## ##   ## #####  ## ##\n");
    sleep(800);
    system("cls");
    printf("  ##    ###### ##      #####  ## ##   ## #####\n");
    printf("  ##    ##  ## ####    ##  ## ## #### ## ##\n");
    printf("  ##    ##  ## ## ##   ##  ## ## ## #### ## ###\n");
    printf("  ##    ##  ## ######  ##  ## ## ##  ### ## ##\n");
    printf("  ##### ###### ##   ## #####  ## ##   ## #####  ## ## ##\n\n");
    sleep(400);
    
    fd=fopen("salvataggio.dat", "rb");
    if (fd!= NULL){
    fread(&elem_cod, sizeof(int), 1, fd);      //leggo da file elem_cod
    fread(&lun_cod, sizeof(int),1,fd);         //leggo da file lun_cod
    fread(&tentativi, sizeof(int),1,fd);       //leggo da file tentativi
    fread(&num_gio, sizeof(int),1,fd);         //leggo da file num_gio
    fread(&gc, sizeof(int),1,fd);              //leggo da file gc
    fread(&gv, sizeof(int),1,fd);              //leggo da file gv
    fread(&codificatore, sizeof(giocatore), 1, fd); //leggo da file codificatore
  
     for(i=0;i<num_gio-1;i++){
     fread(&players[i].nick, sizeof(giocatore), 100, fd);
     }                                          //leggo da file vettore players.nick
     
     for(i=0;i<num_gio-1;i++){
     fread(&players[i].tentativo, sizeof(giocatore), 100, fd);
     }                                         //leggo da file players.tentativo
     
     for(i=0;i<lun_cod;i++){                        
     fread(&cod[i], sizeof(int),100, fd);
     }                                         //leggo da fle vettore cod
     
     for(i=0;i<gv;i++){                        
     fread(&giocatoriclass[i].nick, sizeof(giocatore),100, fd);
     fread(&giocatoriclass[i].tentativo, sizeof(giocatore),100, fd);
     }                                         //leggo da file vettore giocatoriclass.nick e giocatoriclass.tentativo
     }
     else{ 
     printf("File inesistente, mi spiace :( \n");
     
     sleep(2000);
     main ();     }
     
  
     fclose(fd); 
     system("cls");                           //chiudo file
     partita(cod,dec,lun_cod,tentativi,elem_cod,num_gio,players,codificatore,giocatoriclass,gv,gc,&pass);   //chiamo la funzione partita
   
     classifica(giocatoriclass,pass);                                  //chiamo la funzione classifica                                               
    
     topten(giocatoriclass,pass);                                      //chiamo la funzione topten
   
     printf("\n"); 
     }