My main project right now as I continue to learn Python is a simple text adventure game. In it, you issue commands such as 'Move north' to navigate the map. Each tile you visit has a bit of text it will output to describe the tile. The game places an emphasis on combat. There are multiple paths you can take to the reach the final boss and each path has multiple enemies you must defeat.
The way combat works is quite interesting. Every weapon you pick up has a list of 'techniques', which are special keywords you must use when typing in your attack. However, attack commands are made up one other part. Each enemy you face will also have a list of keywords associated with it. That list is called 'weaknesses'. You must also include a weakness in your attack command.
An example list of techniques would be: [slice, stab, cut, throw]
An example list of weaknesses would be: [eyes, arms, head, legs]
To land an attack, you must use a valid combination of techniques and weaknesses.
Of course, the game would be no fun without some sort of challenge. The game itself does not explicitely tell the player what each weapons techniques are or what each enemy's weaknesses are. The player must deduce these things from the descriptions the game provides. Each weapon and monster has a description that sneakily reveals clues. A monster's description might put extra emphasis on how big it's head in, or how it's there is a big hole in it's chestplate. Only by carefully looking at the clues can the player triumph over its enemies.
I invite you to try it out and/or look at the code :)
Link to text adventure template, for those who want to make their own
Link to text adventure demo, to see what a completed game might look like