Il file header.h contiene tutte le inclusioni delle librerie, le dichiarazioni di costanti, le macro, le variabili globali e le dichiarazioni delle strutture dati. Le librerie utilizzate sono: stdio.h, stdlib.h, string.h, SDL.h, SDL_image.h e getopt.h. SDL.h e SDL_image.h sono necessarie per la manipolazione delle immagini e la gestione degli eventi mentre getopt.h per la gestione dei parametri passati al programma.
In tutti i file .c del programma viene effettuata l' inclusione di header.h, la direttiva al preprocessore #ifndef HEADER posta all' inizio del file header.h ci garantisce che il link viene effettuato una sola volta.
Nel file fick.c c'è il main del programma, il file 3d.c comprende tutte le funzioni che riguardano la vista in tre dimensioni della simulazione e nel file function.c è presente l' implementazione di tutte le altre funzioni.
Il main, a seconda del metodo di simulazione che si vuole adottare, implicito o esplicito, è in grado di variare i passi da eseguire, come si può vedere nelle figure e .
Nella sezione si è trattato di come sia possibile cambiare una funzione a tre incognite in una equivalente a due incognite senza la perdita di alcuna informazione. Questo cambiamento è stato possibile grazie al modo di riferirsi ad uno spazio bidimensionale utilizzando un solo indice. Anche il programma utilizza questa strategia, infatti definisce le matrici a due dimensioni come vettori (matrice unidimensionale). Di seguito si ha la definizione della struttura Matrice:
typedef struct{ int color; /* R, G or B */ int r,c; /* matrix dimenction */ Uint8 *m; }Matrice;I valori della matrice vengono memorizzati nel vettore m, gli interi r e c mantengono le dimensioni della matrice, rispettivamente righe e colonne.
Di seguito vengono presentate alcune funzioni cruciali per l' implementazione del simulatore e ne viene discussa la complessità computazionale.