Intanto NON un linguaggio di programmazione general purpose (Java/Python/...) MA, per queste, cose ti serve un linguaggio ORIENTATO a questo tipo di attivita' (simulazione).
Meglio ancora: un linguaggio di programmazione VISUALE basato su puppazzetti.
Esistono gia' giochi del genere.
Io sono un po' datato, ma uno con cui ho giocato in po' era TIM - The Incredible Machine.
In pratica devi risolvere dei puzzle via via piu' complicati.
Parti da questo e mediante AlternativeTo (e' in sito) con un po' di pazienza trovi anche giochi simili in JavaScript.
In alternativa, la soluzione di puzzle, mediante tentativi ed errori, si fa usando una tecnica che viene usata in Intelligenza Artificiale: il backtracking.
Un linguaggio che lo supporta narivamente e' il Prolog.
Pensavi forse di leggere Java, Python, Ruby, C++,...?
No, ti becchi linguaggi sconosciuti alla grande massa