Proponiamo in questo articolo il semplice gioco indovina numero con Algobuild, proveremo cioè a creare il diagramma a blocchi di questo gioco.
Per realizzare questo algoritmo ci servirà la funzione random() che in Algobuild restituisce un numero casuale tra 0.0 e 0.99999999999999.
E ci servirà anche la funzione floor() che arrotonda un intero per difetto.
Il semplice gioco funziona in questo modo: la macchina produce un numero a caso e un utente deve provare ad indovinarlo.
Diagramma a blocchi per il gioco indovina numero con Algobuild
Quindi serviranno queste forme:
Ellisse per l’inizio e per la fine;
Rettangolo per effettuare le operazioni e per l’assegnamento;
Parallelogramma per inserire l’input, ovvero in questo caso per prendere il numero e per visualizzare in output il risultato;
Rombo per effettuare un test che può essere vero o falso.
Procedimento
Dapprima memorizziamo in una variabile n il numero random generato dalla macchina. Questo numero sarà compreso tra 1 e 10 quindi imposto la funzione in questo modo:
n=floor(random()*10+1)
con la funzione floor arrotondo i numeri.
Poi chiediamo all’utente di inserire un numero e lo confrontiamo con il numero generato.
Se è uguale allora ha vinto, altrimenti ha perso. Alla fine diciamo in ogni caso il numero che il computer ha generato.
Ecco il diagramma a blocchi completo:
Ma possiamo fare di meglio, chiedendo ad esempio all’utente per tre volte di inserire il numero e precisare inoltre se il numero generato dal computer è più alto o più basso.
Come fare? Mi serviranno le strutture cicliche.
Ecco allora un’altra implementazione del gioco indovina numero con Algobuild.
Quindi realizziamo un ciclo che utilizza un contatore che parte da 0 e arriva a 3 e ogni volta chiede di inserire un numero. Dopo, per ciascun numero, farà il test per vedere se il numero è più grande o più piccolo.
Il ciclo si fermerà quando l’utente ha esaurito tutti i tentativi oppure ha indovinato il numero. Ho inserito una variabile flag che quando trova il numero diventa 1. Ho chiamato questa variabile indovinato.
Allego tutto il diagramma a blocchi completo:
Questa è solo una possibile soluzione del gioco indovina numero con algobuild.
Alcuni link utili
Indice argomenti diagramma a blocchi
Divisori di un numero con algobuild
Algoritmi di selezione sugli angoli
Numeri amicabili con algobuild