Why's the choice input commented out and hardcoded as 1 in the intro function? It would be nice to be able to read the rules for the game and what the game is about, so you should uncomment the input assignment and remove the default assignment.
For me the game crashes because cmap is not defined when you load a map, because for some reason lvl.createmap() is called only in the first option, you should add it to the other options as well or assign it to a variable and call it at the end of the conditional chain(or before menu()), no?
Map generation and the design in general could be better(can look for inspiration from other dungeon crawlers), you should probably also clear and print the map when you win a battle, the user shouldn't have to print the map all the time via input.
Aside from that, It's a nice little dungeon crawler type beat with a typing mechanic.