Experimentalia

Appunti raminghi

Archive for the ‘golf’ Category

Golf Programming Live!

leave a comment »

Quanta vita riuscite ad infondere in un singolo carattere del vostro programma?

Penso che conosciate tutti il gioco Life e quindi non lo descriverò se non per ricordarne le regole. Chi non lo conoscesse ancora potrà rivolgersi all’apposita pagina di wikipedia per approfondirne le potenzialità e la storia.

In pratica il gioco si svolge su una griglia su cui vengono disposte a caso alcune cellule che possono nascere, vivere o morire a seconda
del numero di altre cellule con cui sono in contatto.

Le regole che permettono di evolvere uno stato nel successivo sono semplicissime:

  • Una cella spenta (morta) si accende (vive) se ha esattamente tre celle vicine vive.
  • Una cella viva (accesa) sopravvive (resta accesa) se ha due o tre celle vicine accese.
  • In tutti gli altri casi le cella resta spenta o si spegne.

Leggi il seguito di questo post »

Annunci

Written by Eineki

gennaio 30, 2011 at 4:05 am

Pubblicato su golf

Tagged with , , , ,

Golf programming: Codice Morse

with one comment

L’altro giorno stavo curiosando tra i polverosi archivi di questo blog e mi sono ritrovato tra le mani un post della serie code-golf annunciato più volte e mai pubblicato. Rimedio adesso cominciando ufficialmente, la nuova serie di prove di golf.

Il codice Morse.

Croce e delizia di generazioni di radioamatori ordinari il codice morse è uno dei pilastri, permettetemi di dirlo, della moderna tecnologia. Noi ci prepariamo a demistificarlo costruendoci attorno il più piccolo programma che permetta di tradurre una stringa ascii in una sequenza di punti e linee pronta per essere trasmessa dal primo telegrafo su cui metterete le mani.

Un messaggio trasmesso utilizzando il codice morse usa un protocollo di comunicazione basato sul tempo. Una linea deve durare esattamente il triplo di un punto, il tempo da lasciar passare tra una lettera e l’altra corrisponde ad una linea, mentre ra i diversi simboli che compongono una lettere deve passare il tempo necessario a trasmettere un punto. Due parole sono separate tra loro da cinque punti di assenza di segnale. Non sto ad annoiarvi con questi ed altri dettagli, chi lo volesse può cominciare a leggere la pagina dedicata al codice morse su wikipedia, perché io stesso mi sono annoiato un po’ a leggerli. Cercherò semplicemente di trasporle in qualcosa che renda questa particolarità adatta a questo contest.
Leggi il seguito di questo post »

Written by Eineki

novembre 14, 2010 at 1:56 am

Pubblicato su golf

Golf Programming: Code Golf Ruler

with one comment

Gennaio è passato, cerchiamo di recuperare il tempo perso e partiamo quanto prima con la prova di Golf Programming di Febbraio.

Vi siete stancati di stare a contare i caratteri che compongono la vostra soluzione di code golf? Il contest di questo mese vi darà una mano.

Si tratta di stampare, al solito sprecando meno caratteri possibile, un righello in modo da poterlo usare per misurare ad occhio le nostre creazioni.

Un esempio lo trovate qui sotto, il resto delle specifiche dopo il solito richiamo alle regole.

+-------------------------------------------------------------------------+
| |    |    |    |    |    |    |    |    |    |    |    |    |    |    | |
| 0        10        20        30        40        50        60        70 |
|                                                                         |
+-------------------------------------------------------------------------+

Leggi il seguito di questo post »

Written by Eineki

febbraio 3, 2010 at 1:59 am

Pubblicato su golf

Golf programming: Ritorno al futuro

with 4 comments

Se l’ultima volta siamo andati indietro nel tempo fino ad Asterix ed i suoi irriducibili nemici, è tempo di tornare ai giorni nostri, o almeno risalire la catena del tempo fino all’epoca in cui gli arabi conquistarono mezza Europa, introdussero lo zero, e ci insegnarono a contare.

Leggi il seguito di questo post »

Written by Eineki

dicembre 3, 2009 at 5:04 am

Pubblicato su golf

Tagged with

Golf programming: Sono Pazzi Questi Romani

with 8 comments

E’ passato un mese dall’ultimo contest di golf programming. E’ arrivato il momendo di ricominciare a consumare, il meno possibile, le nostre tastiere per risolvere quello del mese di novembre.

Le Regole

Si tratta delle solite regole, in ossequio al contesto le ho riportare con il copia e incolla 🙂 :

  1. Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
  2. per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
  3. l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
  4. si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
  5. ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.

L’algoritmo

Il programma da scrivere questa volta riguarda i numeri romani. Quelli che compaiono nelle prefazioni dei libri, per intenderci. O in qualche versione di latino o su centinaia di monumenti.

Questa volta bisogna scrivere un programma che conti, uno per riga, fino a 3999. Partiremo da 1 per arrivare fino a 3999 perché non è possibile, con i caratteri ascii, usare i caratteri romani per esprimere numeri più grandi di 4000. Non mi resta che lasciarvi al vostro compito con un link ad un file di riferimento con tutti la sequenza di numeri da replicare ed aspettare le vostre soluzioni.

La mia, al solito, tra circa una settimana tra i commenti.

Written by Eineki

novembre 2, 2009 at 4:38 am

Pubblicato su golf

Golf Programming: Paroliamo

with 6 comments

L’ultima prova della serie anagrammi si è rivelata particolarmente semplice. Complichiamola appena un pò modificando l’algoritmo in modo da costringerci a modificare l’approccio al problema.

Le Regole

Le regole del contest:

  1. Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
  2. per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
  3. l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
  4. si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
  5. ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.

L’algoritmo

Anche la funzione di questo mese, come quella del mese scorso,  prende in input due stringhe ma restituisce/stampa vero se con le lettere che compongono il primo parametro è possibile comporre il secondo. A differenza del programma sugli anagrammi, non è necessario utilizzare tutte le lettere della prima parola per comporre la seconda.

Ad esempio, con la parola MANAGER è possibile (e quindi la funzione deve restituire vero) comporre, tra le altre, le parole RANA, RAME, GARA o GRANE.

L’ordine dei parametri è importante. Con la parola MANAGER non è possibile costruire GERMANIA, mentre è vero il contrario.

La parola OSTE, poi, non può essere usata per comporre TESTO, le lettere ci sono tutte ma manca una T. Di conseguenza la funzione dovrebbe restituire falso.

Al solito posterò la mia soluzione come commento alla fine della settimana entrante, per dare il tempo a chi vuole partecipare di scatenare la propria fantasia.

Written by Eineki

settembre 30, 2009 at 4:36 am

Pubblicato su golf

Golf Programming: Anagrammi

with 6 comments

Rientriamo dopo le ferie con un’altra sfida classica, giusto per toglierci di dosso eventuale ruggine. Al solito riporto le regole per chi cominciasse adesso a seguire questa pseudo rubrica.

Le Regole

Ormai le regole dovrebbero essere familiari, le riporto per scrupolo:

  1. Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
  2. per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
  3. l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
  4. si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
  5. ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.

L’algoritmo

La funzione di questo mese prende in input due stringhe e stampa vero se una delle due è anagramma dell’altra o falso in caso contrario (ovviamente sono consentite anche, per i linguaggi che lo permettono, 0 ed 1 o 0 e ~0).

Al solito posterò la mia soluzione come commento alla fine della settimana entrante, per dare il tempo a chi vuole partecipare di scatenare la propria fantasia.

Written by Eineki

agosto 30, 2009 at 19:32 pm

Pubblicato su golf