Fulfill the below user stories. Use whichever libraries or APIs you need. Give it your own personal style.
User Story: I have health, a level, and a weapon. I can pick up a better weapon. I can pick up health items.
User Story: All the items and enemies on the map are arranged at random.
User Story: I can move throughout a map, discovering items.
User Story: I can move anywhere within the map's boundaries, but I can't move through an enemy until I've beaten it.
User Story: Much of the map is hidden. When I take a step, all spaces that are within a certain number of spaces from me are revealed.
User Story: When I beat an enemy, the enemy goes away and I get XP, which eventually increases my level.
User Story: When I fight an enemy, we take turns damaging each other until one of us loses. I do damage based off of my level and my weapon. The enemy does damage based off of its level. Damage is somewhat random within a range.
User Story: When I find and beat the boss, I win.
User Story: The game should be challenging, but theoretically winnable.