Vintage code

Ciao developer, 

in questo articolo voglio condividere con te del codice che definisco “vintage”, cioè dei vecchi sorgenti codificati quando sognavo di diventare un programmatore.

Oggi, a distanza di oltre dieci anni, sono diventato un programmatore, ma non ho smesso di studiare 🙂

Più o meno era il 2008, periodo in cui avevo condiviso gran parte delle mie giornate con un caro vecchio amico a studiare e codificare tutto ciò che ci passava per la testa.

Ogni tanto riprendo in mano qualche sorgente pieno di polvere solo per il gusto di ricordare quei momenti di puro divertimento e adrenalina, progetti che all’epoca inventavamo solo per sfida. Provo poi a immaginare come affronterei il rompicapo adesso con le conoscenze acquisite fino ad oggi. 

Uno di questi è stato il gioco del Forza 4, da un lato la sfida di utilizzare #Java AWT e Swing per generare la matrice (6×7) dinamicamente con delle label e dall’altro sfornare un algoritmo per definire il vincitore ad ogni giro.

Ci eravamo posti come obbiettivo quello di riuscire a trovare un algoritmo in grado di stabilire la vittoria di un concorrente con meno passaggi possibili, alternativa era di scrivere la sbrodolata di if per coprire tutte le combinazioni vincenti sull’intera matrice.

La nostra idea (non mia ammetto) è stata quella di immaginare di far scorrere una matrice più piccola 4×4 nella matrice 6×7 fino a quando non si trova il vincitore e solo nella porzione implementare la logica delle combinazioni vincenti.

Invertendo l’ordine degli statements e con l’aggiunta di un flag si potrebbero far meno “conti”, ma vabbè eravamo giovani 🙂

1 step – win(T) = false (dove T è la matrice 4×4)

N+1 step – win(T(n+1)) = false

Last step – win(T(n+1)) = true WINNER!!!

Già a colpo d’occhio, nel metodo noto che al tempo non tenevo in considerazione le ripetizioni superflue 🙂 (ovviamente anche i nomi delle variabili in italiano).

Nel for più esterno si potrebbe aggiungere una condizione d’uscita sul valore assunto dalla variabile flag del tipo i < rows && !flag

Tu, come lo risolveresti? Se ti va scrivi la tua opinione.

Al seguente URL potete scaricare l’intero codice sorgente:

https://Bonny@bitbucket.org/Bonny/forza4.git

Leggi anche: Upload file via API con Mule

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

diciassette − 3 =