Ho un'app per creare grafici semplici (il tipo con vertici e bordi) e quindi utilizzare su di essi algoritmi diversi (BFS, DFS, topsort, Prim ecc.) per dimostrare come funzionano.
Ora sto lavorando per portarlo in un'app Rails e distribuirlo in modo che possa essere utilizzato dalla mia università (si spera).
Attualmente i grafici sono archiviati in un db SQLite e sto pensando di fare qualche magia D3 su di essi.
Quindi al vero problema, come devo implementare e memorizzare gli algoritmi?
Voglio essere in grado di "passare" attraverso l'algoritmo, mostrando passo per passo come funziona sul grafico. Nella mia precedente implementazione, scritta in Java, avevo una classe Algorithm astratta con metodi astratti come init, step e reset. Ma ora che siamo fuori dal mondo di Java e utilizziamo il meraviglioso Ruby, ho la sensazione che ci sia un modo davvero intelligente ed elegante per ottenere lo stesso risultato.
Sto pensando di comprimerlo in un motore Rails, solo per i calci.
Ecco l'implementazione Java citata: link