
Un algorisme és un conjunt finit d'instruccions o passos que serveixen per a executar una tasca o resoldre un problema. En la vida quotidiana, s'empren algorismes en multitud d'ocasions per a resoldre diversos problemes, com per exemple per posar una rentadora (conjunt d'instruccions enganxades a la tapa de la màquina), per tocar un instrument musical (partitures), per construir un aeroplà a escala (expressats en les instruccions), per fer trucs de màgia (passos per a fer el truc) o, fins i tot, per a fer receptes de cuina (passos de la recepta).
Hi ha moltes formes de descriure algoritmes, incloent-hi el llenguatge humà, el pseudocodi, els diagrames de flux o els llenguatges de programació.
En aquest CodeLab aprendrem a descriure algoritmes amb diagrames de flux, implementant el joc: "Guess the number!"

Accedeix a la web https://app.drakon.tech/signup i crea't un compte d'usuari.
Un cop hagis creat el compte, accedeix a l'IDE: https://app.drakon.tech/ide/doc/

Crea un mòdul fent clic al botó
Apareixerà un diàleg amb les propietats del mòdul:

Fes clic a

Fes clic a
S'haurà creat el mòdul

Ja ho tenim tot preparat per a crear algoritmes mitjançant diagrames de flux.
Fes clic al botó "

Apareixerà la finestra per a dibuixar el diagrama:

Descriu la primera instrucció fent doble clic sobre el rectangle:
Escriu el codi per a generar un nombre aleatori entre 0 i 100:
hiddenNumber = Math.floor( Math.random() * 100 )

Afegeix una altra instrucció fent clic sobre la icona
i escollint el punt on vols afegir la instrucció:

Escriu el codi de la instrucció per a inicialitzar els intents a 0:
tries = 0

Afegeix una altra instrucció a continuació (fent clic a la icona
)

Escriu a dintre el següent codi per a demanar al jugador que introdueixi un nombre:
number = prompt( "Guess the hidden number!" )

Afegeix una nova instrucció per a augmentar el comptador d'intents realitzats:
tries++

Ara introduirem un altre tipus d'instrucció, una Decisió. Comprovarem si el
Per a introduir una Decisió fes clic sobre la icona
. Introdueix la Decisió a continuació de la darrera instrucció:

Escriu la instrucció que comprova si el
number == hiddenNumber

Ara intercanviarem els camins per a que en cas de que el
Fes clic-dreta sobre la Decisió i selecciona l'opció "Swap Yes and No":

Abans de finalitzar el joc (en cas de que hagi encertat el
alert( "You guessed the number in " + tries )

Tal i com està de moment el flowchart, si el jugador endevina el nombre se li mostra el missatge de que l'ha encertat. Però si no l'endevina, podem veure que el camí que segueix l'algoritme (marcat en vermell a sota) és, efectivament, no mostrar-li el missatge, però no obstant el joc finalitza igualment:

Corregim el camí que segueix l'algoritme quan el jugador no endevina el número.
En aquest cas, el jugador ha de tornar a introduir un altre número, però li indicarem si el
Per tant, en el camí del "No", necessitem fer una altra comprovació per veure si el
Introdueix una nova Decisió
al camí del "No":

Introdueix el codi per comprovar si el
number > hiddenNumber

En cas de que sigui major, li ho indicarem així al jugador en el moment de demanar-li un altre número:
number = prompt( "Hidden number is lower than " + number )

En cas de que NO sigui major, li ho indicarem així al jugador:
number = prompt( "Hidden number is higher than " + number )

Ja només queda l'últim pas. Tal i com ho tenim ara, si el jugador endevina el nombre, el programa el felicita i acaba, però si no l'endevina li demana un altre, però també acaba. Corregim això últim.
En cas de que no l'endevini i li hem de demanar un altre nombre, el programa ha de tornar a la instrucció que suma un intent i després tornar a comprovar si l'ha encertat aquesta vegada.
Selecciona el cami que porta a

Ja està, ja hem acabat l'algorisme. Finalment queda així:

Per a executar el joc, fes clic a la icona
del menú superior.
Fes clic a l'enllaç que et genera:

Endevina el número secret!
