Inception spiegato con un programma scritto in C #LegaNerd
2

Inception: indubbiamente uno dei film più rilevanti di tutto il 2010. Nel bene o nel male la creazione di Nolan ha fatto parlare di sé ad oltranza.
Capolavoro della cinematografia moderna o pellicola overhyped per gente che crede di essere intelligente solo perché riesce a seguire una trama più complessa di quella di un cinepanettone? Beh, lo scopo dell’articolo non è stabilire questo.

Lo scopo dell’articolo è spiegare la trama del film, visto che una delle lamentele più comuni rivolte alla pellicola è proprio la complessità della sequenza degli eventi mostrati.

Ora, qual è il miglior modo di spiegare un film a un’intera lega di nerds?
Ci pensa karthick18 (chiunque egli sia) con un simpatico programma da 1900 linee scritto in C che simula l’intera trama del film.

Come viene fatto ciò?
Ovviamente il tutto è spiegato nel codice stesso, che tra l’altro è corredato da abbondanti righe di commento.
Vale la pena di citare il problema dei filosofi a cena per avere da subito le idee un po’ più chiare.


Cinque filosofi siedono ad una tavola rotonda con un piatto di spaghetti davanti, una forchetta a destra e una forchetta a sinistra. Ci sono dunque cinque filosofi, cinque piatti di spaghetti e cinque forchette.

Si immagini che la vita di un filosofo consista di periodi alterni di mangiare e pensare, e che ciascun filosofo abbia bisogno di due forchette per mangiare, ma che le forchette vengano prese una per volta. Dopo essere riuscito a prendere due forchette il filosofo mangia per un po’, poi lascia le forchette e ricomincia a pensare. Il problema consiste nello sviluppo di un algoritmo che impedisca lo stallo (deadlock) o la morte d’inedia (starvation). Il deadlock può verificarsi se ciascuno dei filosofi tiene in mano una forchetta senza mai riuscire a prendere l’altra. Il filosofo F1 aspetta di prendere la forchetta che ha in mano il filosofo F2, che aspetta la forchetta che ha in mano il filosofo F3, e così via in un circolo vizioso. La situazione di starvation può verificarsi indipendentemente dal deadlock se uno dei filosofi non riesce mai a prendere entrambe le forchette.


(da wikipedia)

Risoluzioni di questo problema vengono solitamente scritte usando mutexes per le forchette e threads per i filosofi. La stessa cosa viene fatta nel programma di inception: i mutexes vengono utilizzati per i vari livelli dei sogni, assieme ai sognatori lucidi.

L'output del programma è a questo link http://gist.github.com/840077
Il codice completo potete trovarlo all’indirizzo http://github.com/karthick18/inception

Fonte: http://thechangelog.com/post/3463797919/inception-the-movie-explained-through-c-code

Aree Tematiche
Cinema Programmazione
Tag
Edit
LN Panic Mode - Premi "P" per tornare a Lega Nerd