I haven't run it yet; short on time this morning. Yes it's good, but coding the whole game up in this way will lead to (a) a very complicated program with lots of repeated code that's difficult to debug and (b) it's not easy to extend the game. Compare what you would have to do to add position 7 and the small amount I had to do, which was a change to data only and no code change. Also you have combat at position 2, now suppose you've repeated that code at 20 other locations, then you find a bug in one of them; you have to find all 21 occurrences of that bug and fix them all, as opposed to my generic combat routine where the bug will only need to be fixed once.
Imagine how large your program will be if you extend this up to a typical adventure game with hundreds of nodes (FF gamebooks often have over 500 numbered paragraphs).
> while (a == 1)
Oh, and use more sensible variable names. Try looking through 100,000 lines of code for a variable named "a" and you'll be swearing at the original programmer long before you get even halfway. cf:
> while (!game_exit)
and how much easier it will be to find that than to find all a's.