Rendendo divertente, e semplice la programmazione. Mi sono rifatto al linguaggio Logo (Solo la parte grafica).
Il modulo che allego dovrebbe permettervi di creare facilmente funzioni, e imparare mShell.
Ho corretto svariati errori, aumentato la velocità in esecuzione, e reso indipendente dalle dimensioni di schermo.
Ora il modulo si adatta allo schermo del vostro cellulare.
In oltre ho reso modificabile il nome del modulo (anche se consiglio di continuare a chiamarlo turtleg.mm )
turtleg0.2.txt (5,05K)
Numero di downloads: 4 Per tutti i cellulari.
(rinominare turtleg0.2.txt in turtleg.mm)
Ho aggiunto anche nuove funzioni.
Il modulo turtleg contiene i seguenti comandi: ------------------funzioni--------------------------------------- pe() = penerase trasforma la penna in gomma da cancellare (in effetti assegna alla penna lo stesso colore del fondo) ht() = headturtle nasconde alla vista la tartaruga (rendendo più veloce il disegno) st() = showturtle rende visibile la tartaruga mentre disegna cs() = clearscreen pulisce lo schermo non modifica le coordinate ne l'orientamento della tartaruga. home()= tana o casa riporta al centro dello schermo la tartaruga la orienta a gradi 0. non modifica le restanti impostazioni. draw()= disegna resetta tutto all'origine pulendo lo schermo (porta in centro tartaruga orientata a 0° imposta penna nera fondo bianco rende attiva la penna. rt(gradi)= right destra orienta di N. gradi la tartaruga a destra. lt((gradi)= left sinistra orienta di N. gradi la tartaruga a sinistra. fd(passi)= forward avanti N. passi fa avanzare la tartaruga e se la penna è "down" disegna un passo corrispone ad un pixel dello schermo. bk(passi)= back indietraggia di N. passi la tartaruga e se la penna è "down" disegna. setx(coordinatax)= (va a x) sposta la tartaruga alla coordinata assoluta x indicata se la penna e "down" disegna non modifica l'orientamento dei gradi che la tartaruga possiede. ricordarsi che lo schermo è diviso in quattro quadranti (piano cartesiano) perciò x a destra del punto 0 ha valori positivi x alla sinistra del punto 0 ha valori negativi. sety(coordinatay)= come setx() ma ci si riferisce alle coordinate asse Y. random(da,ad) = random genera numeri casuali dal valore (da) fino al valore (ad) compreso. spc(colore) = setpencolor assegna il colore alla penna ci sono 16 colori numerati da 0 a 15 come in tabella 0=nero 4 =porpora 8 =arancione 12=grigio2 1 =bianco 5 =verde1 9 =marrone 13=verde2 2 =rosso 6 =blu2 10=rosso1 14=azzurro 3 =blu1 7 =giallo 11=grigio1 15=grigio3 ma volendo si puo assegnare qualsiasi colore col metodo (0Xffffff) per questioni di programma i numeri compresei tra 0X100000 e 0Xf00000 non funzionano (vengono visti come 1-2-3-4-5 della tabella sopra riportata.) sbg(colore) = setbackground assegna colore al fondo (Stessi colori di spc()) setxy(x,y) = sposta la tartaruga alle coordinate assolute x,y se la penna è "down" disegna ma non modifica l'orientamento della tartaruga. xcor()= coordinata x rende il valore assoluto di x della posizione attuale di tartaruga. ycor()= cpprdinata y rende il valore assoluto di y della posizione attuale di tartaruga. pc()= rende il colore della penna (0-15) o gli altri se non si sta usando i colori numerati. bg()= rende il colore del fondo (0-15) o altri. getco() = rende il colore attuale del punto su cui si trova tarta. (0-15) corrispondenti a tabella o altri colori. --------------------------------variabili modificabili---------------------------- pen= variabile a cui assegnare "up" per alzare la penna o "down" per abbassare puo essere usata per conoscere lo stato della penna. heading= gradi variabile che contiene l'orientamento della tarta 0° punta in alto 180° punta in basso ecc.. può essere impostata per orientare in maniera assoluta la tarta rispetto al piano.
Allego anche un programma di esempi che carica il modulo turtle.mm
esempi0.2.txt (1,92K)
Numero di downloads: 2
Dove in modo facile si generano oggetti grafici riutilizzabili.
// disegna un quadro alla turtle function quadro(lato) for a=1 to 4 do t.fd(lato); t.rt(90); end; end;
Questa è una fuzione che disegna un quadrato.
// disegna un rosone usando i quadri function rosone(lato) t.draw(); for z=1 to 36 do quadro(lato); t.rt(10); end; end;
che può essere riutilizzata per generare un rosone come questo:
m1.png (6,92K)
Numero di downloads: 2
E con gli altri esempi si fa questo
m2.png (5,92K)
Numero di downloads: 3 o questo
m3.png (2,36K)
Numero di downloads: 1
m4.png (16,11K)
Numero di downloads: 2
Ci sono nell'esempio anche funzioni ricorsive.
Si può facilmente crearsi un alfabeto grafico, casette, ed altro......
Non ho testato a fondo le funzioni ci possono essere errori comunque...... più in là posterò aggiornamenti ed altri esempi più interessanti.
Come dice Alter....Lento ama il Logo perchè la sua mente semplice non gli permette di contenere altro!.
E' vero! mentre sono sparso per il mondo per questioni di lavoro, mi rilasserò impartendo semplici comandi al mini Logo....
Se qualcuno trovasse divertente il tutto si può portarlo avanti. Fatemi sapere.
Messaggio modificato da lento il 29 novembre 2009 - 14:43

Aiuto















Pubblicità