I admit I have not looked at your code but have you manually programmed in each wall? Could it be done at random - program it to at least leave a gap between them.
Would it be difficult to program in play for any screen? Presumably it could read how many rows and columns the screen has and adjust accordingly (if the walls were placed at random). I will try and take a look when I have a little bit more time. I have saved it to my desktop
mowcuis: Yep I have manually programmed in each wall and yes you could make the walls at random. At the moment each level is 2 rows of 127 chars, you could extend this or make it all randomly generated and using a 16 char as a buffer and some variables to keep count of things like distance between walls.
If you were to use a 20x4 LCD, then you'll just need to add 2 more rows to the level array and modify the for loop a bit. I do think 20x4 would make this game better :). For other LCDs (e.g. 3310), not so sure how it would work.