Well, I haven't look at NetHack source code, but as they are so many graphic user interfaces for that game I supose that "game logic" and "user interface" code must be splitted. If I had done something like NetHack, I would had done it that way: splitting "game logic" and "user interface" code...