lunedì 21 febbraio 2011

Gioco del lunedì — Manufactoria

Siamo in una fabbrica di robot, addetti al controllo qualità. Ogni robot è dotato di una programmazione, che consiste in una sequenza arbitraria di due colori, il verde e il rosso. Noi dobbiamo costruire una catena di montaggio che faccia passare solo i robot che soddisfano a certi requisiti (differenti per ogni livello), e per farlo abbiamo a disposizione delle macchine che possono leggere la sequenza di colori e eventualmente modificarla.

Siamo una specie di macchina di Turing, insomma, anche se un po' più limitata (non possiamo tornare indietro, ma possiamo solo leggere la sequenza di colori in avanti) (gli informatici possono divertirsi a vedere se il sistema è effettivamente equivalente a una macchina di Turing oppure no).

Il gioco è molto coinvolgente, almeno se vi piace programmare. Quindi attenti, prima di cliccare qui

(via xkcd)

5 commenti:

.mau. ha detto...

non credo che lo sia, altrimenti la macchina di Turing la si studierebbe così :-P

(ps: un captcha "preventi" non è male, anche se in italiano di dovrebbe dire "previeni". Ma si sa che questi ammericani mica lo sanno bene, l'italiano!)

zar ha detto...

Dici? Non so se hai provato a giocare, ma andando avanti hai a disposizione altri due colori che puoi gestire tu come vuoi (mentre i robot hanno sempre i loro due) e i problemi diventano molto più difficili. Ce n'è uno, che non ho ancora risolto, che ti dice questo: interpretando i blu come 0 e i rossi come 1 (o viceversa, non importa), fare passare solo i robot multipli di 4.

Puoi scrivere, puoi leggere, ci sono gli if, secondo me c'è tutto quello che ti serve... Comunque l'informatico sei tu, se non sbaglio :-)

(ma i captcha compaiono sempre? rompono molto?)

.mau. ha detto...

figurati se ho il tempo di provare a giocare :-)

Il problema non è tanto avere una sola direzione (basta un matematico per capire che avere solo i numeri positivi o avere positivi e negativi è la stessa cosa) quanto il non tornare indietro, il che implica che tutto quello che hai lasciato indietro non te lo puoi ricordare se non salvandotelo nello stato del sistema e pertanto ti richiederebbe un numero infinito di stati.

(il captcha c'è sempre, ma è leggibile quindi non dà fastidio)

zar ha detto...

(Per il captcha: io vedo che se sono loggato con google, non mi viene richiesto (ma non sempre). Boh, potrei pensare di toglierlo)

Per quanto riguarda il gioco: dicevo che andando avanti hai a disposizione dei colori che non vengono usati dai robot, ma che puoi usare tu come ti pare. In questo modo puoi eseguire cicli sulla stringa, anche se non puoi tornare indietro. In uno dei problemi ti viene richiesto di identificare (mettendo un pallino giallo) il centro di una stringa. Per risolverlo si devono mettere due pallini gialli, uno all'inizio e uno alla fine, e farli scorrere verso il centro. Quindi l'ultimo "torna indietro".

In pratica devi fare un ciclo che, ogni volta, ricopia la stringa apportando due modifiche.

Marco ha detto...

È un giochino bellirrimo!! Però mi riservo di andare avanti prima di ragionare sulla Turing completezza!