Nun, du wirst deine Welt wohl in Kacheln organisieren. Also hübsch Feld für Feld. Das kannst du prima in einem Array speichern. Dieses Array hat nun verschiedene Werte, nehmen wir 0 für begehbaren Grund, 1 für "Wände". Dein "HeroEvent" hat immer eine aktuelle Position. Bei jeder Eingabe ändert sich die Position deines Helden. Bevor er allerdings die Position ändert, überprüfst du, ob dein Held im Array nun auf einer 1 wäre.

Grobes Beispiel:

Code:
 int gamefield[][] = {{0, 0, 1},
                      {0, 0, 1},
                      {0, 0, 1}};
 int hero_pos_x = 0;
 int hero_pos_y = 0;
Das wäre also ein 9-Feld großes Spielfeld, mit einer Wand rechts. Der Held ist in der linken oberen Ecke. Angenommen der Benutzer drückt nach links, so wird überprüft, ob gamefield[x+1][y] 0 bzw. 1 wäre. Je nach Ergebnis darf nun der Spieler vorrücken... uhm, klar soweit?