Fatto indovina il numero-- chiedo commenti e consigli

di il
11 risposte

Fatto indovina il numero-- chiedo commenti e consigli

Questo è il mio prodotto : indovina il numero
chiedo consigli e commenti (belli e brutti) su come vi sembra il codice , i nomi delle variabili ,ecc...
insomma commentate in base alla vostra esperienza.
Grazie


----------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int differenza(int a,int b);
void confronta(int numUtente, int numComputer, int Differenza);

int main(){

int num1 ;
srand(time(NULL));
int indovina = rand()%100;

printf("inserisci un numero compreso fra 1 e 100\n");
scanf("%d",&num1);

int quantoIndovini = differenza(num1,indovina);


confronta(num1,indovina,quantoIndovini);


printf("prova ancore , inserisci un altro numero\n");
scanf("%d",&num1);

quantoIndovini = differenza(num1,indovina);
confronta(num1,indovina,quantoIndovini);
printf("prova ancore , inserisci un altro numero\n");
scanf("%d",&num1);
quantoIndovini = differenza(num1,indovina);
confronta(num1,indovina,quantoIndovini);

return 0;
}

int differenza(int a, int b){
if(a<b){
return b - a;
}
return a - b;
}

void confronta(int numUtente, int numComputer,int Differenza){

int num1 = numUtente;
int indovina = numComputer;
int quantoIndovini = Differenza;

printf("numero inserito :%d , numero da indovinare = %d, quanto siamo vicini %d .\n",num1,indovina,quantoIndovini);

if(num1 == indovina){
printf("congratuazioni hai vinto\n");

}
else if (num1 > indovina && (quantoIndovini > 1 && quantoIndovini <20)){
printf("Low Low, try again\n");
}
else if (num1 < indovina && (quantoIndovini > 1 && quantoIndovini <20))
printf("Low Low , try again\n");
else if (num1 > indovina){
printf("High , try again\n");
}
else {
printf("High, try again\n");
}

}

11 Risposte

  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Cominciamo col dire che se non usi i tag CODE del forum, il codice non si può neanche leggere ...
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Ho letto le regole infatti ho selezionato la funzione code,
    il risultato ottenuto è:

    ----------------------------------------------------------------------------------------------------
    come si può notare dal messaggio precedente.
    Devo farci un po la mano,ma per caso va inserito tra i due code ??
    Grazie
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Sì, inserisci il codice tra i due code ... usa l'anteprima se necessario ...
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int differenza(int a,int b);
    void confronta(int numUtente, int numComputer, int Differenza);
    
    int main(){
    
    int num1 ;
    srand(time(NULL));
    int indovina = rand()%100;
    
    printf("inserisci un numero compreso fra 1 e 100\n");
    scanf("%d",&num1);
    
    int quantoIndovini = differenza(num1,indovina);
    
    
    confronta(num1,indovina,quantoIndovini);
    
    
    printf("prova ancore , inserisci un altro numero\n");
    scanf("%d",&num1);// inserire un numero intero
    
    //richiama la funzione differenza
    quantoIndovini = differenza(num1,indovina);
    
    confronta(num1,indovina,quantoIndovini);
    
    printf("prova ancore , inserisci un altro numero\n");
    scanf("%d",&num1);//inserire un numerointero
    
    quantoIndovini = differenza(num1,indovina);
    
    confronta(num1,indovina,quantoIndovini);
    
    return 0;
    }
    //calcola la differenza tra il numero inserito e il numero da indovinare
    int differenza(int a, int b){
    if(a<b){
    return b - a;
    }
    return a - b;
    }
    
    //funzione per eseguire il confronto fra numero inserito e numero da indovinare
    void confronta(int numUtente, int numComputer,int Differenza){
    
    int num1 = numUtente;
    int indovina = numComputer;
    int quantoIndovini = Differenza;
    
    //serve per verificare il funzionamentodel programma
    printf("numero inserito :%d , numero da indovinare = %d, quanto siamo vicini %d .\n",num1,indovina,quantoIndovini);
    
    if(num1 == indovina){
    printf("congratuazioni hai vinto\n");
    
    }
    //verifica il range da 1 a 100 in più se il range è tra 1 e 20
    else if (num1 > indovina && (quantoIndovini > 1 && quantoIndovini <20)){
    printf("Low Low, try again\n");
    }
    else if (num1 < indovina && (quantoIndovini > 1 && quantoIndovini <20))
    printf("Low Low , try again\n");
    //verifica il range solo tra 1e 100
    else if (num1 > indovina){
    printf("High , try again\n");
    }
    else {
    printf("High, try again\n");
    }
    
    }
    
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Anche un minimo di indentazione non guasterebbe!
    In generale, almeno io quando scrivo codice preferisco utilizzare termini inglesi.
    Quella funzione differenza con l'if può essere sostituita da un semplice abs(a-b), il tuo output è in parte in italiano in parte in inglese il che fa strano.
    Nella funzione confronta mi sembra inutile copiare i tre parametri in nuove variabili (dai nomi meno esplicativi dei primi) se poi non devi farci nulla.
    E poi quella cosa del quantoindovini < 20 sinceramente non l'ho capita.
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Questa

    int indovina = rand()%100;

    non restituisce un numero tra 1 e 100 ma tra 0 e 99

    E che senso ha ripetere per tre volte lo stesso blocco di istruzioni ??
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Hai perfettamente ragione e solo che ieri ho publicato la bozza.
    Quello che vedi qui sotto è quello ufficiale.
    mentre per i nomi dei identificatori devo migliorare.
    Dimenticavo il quantoindovini >1 AND quantoindovini <20 serve per indicare che ti sei molto avvicinato al numero inserito.

    Grazie per i consigli.


    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int differenza(int a,int b);
    void confronta(int numUtente, int numComputer, int Differenza);
    
    int main(){
    
    	int num1 ;
    	srand(time(NULL));
        int indovina = rand()%100;
    
        printf(" enter a number between 1 and 100");
         scanf("%d",&num1);
    
        int quantoIndovini = differenza(num1,indovina);
    
    
        confronta(num1,indovina,quantoIndovini);
    
    
        printf("try again, enter another number\n");
        scanf("%d",&num1);
    
        quantoIndovini = differenza(num1,indovina);
        confronta(num1,indovina,quantoIndovini);
        printf("try again, enter another number\n");
        scanf("%d",&num1);
        quantoIndovini = differenza(num1,indovina);
        confronta(num1,indovina,quantoIndovini);
    
    	return 0;
    }
    //indca di quanto l'utente si è avvicinato al numero da indovinare
    int differenza(int a, int b){
        if(a<b){
    	return b - a;
        }
        return a - b;
    }
    
    void confronta(int numUtente, int numComputer,int Differenza){
    
    
    
    	printf("numero inserito :%d  , numero da indovinare = %d, quanto siamo vicini %d .\n",numUtente,numComputer,Differenza);
    
    	 if(numUtente == numComputer){
    	    printf("Congratulations you have won\n");
    
    	    }
    	    else if (numUtente > numComputer && (Differenza > 1 && Differenza <20)){
    	    printf("Low Low, try again\n");
    	    }
    	    else if (numUtente < numComputer && (Differenza > 1 && Differenza <20))
    	     printf("Low Low , try again\n");
    	    else if (numUtente > numComputer){
    	    	printf("High , try again\n");
    	    }
    	    else {
    	    printf("High, try again\n");
    	    }
    
    }
    
    
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Non hai letto quello che ti ho indicato io ...

    1) rand sbagliata

    2) perché 3 volte lo stesso codice???
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Rand sbagliato si = 1+(rand () %100)
    ripetuto più volte il codice per simulare i tre tentativi,
    in modo più leggero.
    Cosa ne pensi???

    Grazie
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Penso che esistono le for ... non si ripete il codice copiandolo ...
  • Re: Fatto indovina il numero-- chiedo commenti e consigli

    Penso anch'io .
    Ho ricevuto il messaggio .
    Grazie mille
Devi accedere o registrarti per scrivere nel forum
11 risposte