top of page

Programmazione... su Minecraft? pt.1


ree














Minecraft?


Si, proprio quel Minecraft!


Quel gioco fatto di cubi, dove l'unico scopo, è quello di non avere uno scopo


Puoi fare di tutto, proprio di tutto... forse troppo...



Ebbene , perchè oggi andremo a vedere come possiamo usare questo semplice videogioco per imparare le basi della programmazione e della logica



Pronti?











Ok, iniziamo con il definire l'unità base: il bit


Questo è come un interruttore, che può avere uno di questi due stati:


  • 0 (o "spento")

  • 1 (o "acceso")


Con una lista di bit, possiamo creare delle lunghe stringhe che rappresentano qualsiasi cosa, se decodificata bene


Per esempio, nel linguaggio dei computer, 01000001 codifica per la lettera "A"



Una frase come questa invece, sarebbe più una cosa come:

1010100110011100101011011101100100010111000110111000110000111001101001100111001001101100101101100110110000100100010110101100110111101010010111011011010101000111010000010111011101010000010101001010110010010001110110100110110111000001010000011100010110010001100111000000110000110000110110001100101010010110111000111101001010111010110111101101100110010110110110111010110110000110110110001001010111010110100001010110110011010110111101101011001100101010111011100110101100101010110110101010001010000000000100101101110111100011001101100111011101111011100111111010000111100111011



Ok, ma come fa questo ad essere più leggibile di semplici simboli?



Infatti, non lo è (per noi), ma lo è per i computer, che da una stringa di soli 8 numeri, possono identificare simboli univoci





Ok, e i numeri?



Qua la cosa è più complessa, ma anche più intelligente



Supponiamo di voler scrivere 43 con solo 0 e 1


Se vogliamo scriverlo come quarantatrè numeri 1 concatenati, questo sarebbe molto inefficente, perciò usiamo il metodo binario, che dice:


In una stringa di n numeri, l'n°esimo numero (partendo da destra), se 1, vale esattamente 2^(n-1) unità. I risultati vengono poi sommati per dare il numero finale


Quindi per esempio, 43 diventerebbe 00101011


Perchè: 2^7 · 0 + 2^6 · 0 + 2^5 · 1 + 2^4 · 0 + 2^3 · 1 + 2^2 · 0 + 2^1 · 1 + 2^0 · 1 = 43


Tutto quello che noi vediamo nel digitale è in qualche modo trasformato in stringhe di 0 e 1, facilmente capibili dalle macchine


Ci sono poi programmi che rendono questo codice leggibile anche a noi, come, non per ultimo, Minecraft stesso





Ok, e cosa centra questo videogioco con la programmazione?



In questo gioco, in cui la creatività regna sovrana, si dà il caso che siano stati aggiunti elementi con particolari proprietà (chiamati componenti redstone):


  • La polvere di redstone (o redstone) rappresenta un cavo elettrico

  • Il ripetitore rappresenta, beh, un ripetitore

  • Le leve rappresentano gli interruttori che troviamo in casa



E molti altri elementi (pistone, comparatore, torcia di redstone...)




Ok, ma perchè questo è importante?



Perchè, dati questi componenti, possiamo a tutti gli effetti, programmare un programma dentro un gioco!



Facciamo l'esempio dei gate condizionali, largamente utilizzati in elettronica


Questi permettono il passaggio di "corrente" solo quando una condizione è soddisfatta


Un AND gate a due input verosimilmente, permetterà il "passaggio" solo quando gli input saranno entrambi attivi (1 in binario)



Su Minecraft, questo può esser fatto in questa maniera:



ree















Ma esistono anche altri gate: OR, NOT, XOR, NOR, NAND...











Bene...


Vorrei dirvi che questo sarà un episodio dei tanti


Ma tanto ormai mi conoscete, non durerò per molto...




Sappiate però che l'obiettivo di trasmettervi la mia passione rimane


Che sia la matematica, la fisica, l'ingegneria aerospaziale, o l'elettronica


Sarò sempre qua, per voi




Con questo quindi io vi saluto, sperando di esser stato abbastanza chiaro


Se avete domande non esitate a chiedere qua sotto


E come sempre ormai...




Al prossimo post




 
 
 

1 commento


Sito 10/10

Mi piace
bottom of page