Skip to content

Instantly share code, notes, and snippets.

@rafaelvanat
Forked from miere/BlindWarriorI.md
Last active August 29, 2015 14:04
Show Gist options
  • Save rafaelvanat/1e6061ecc416dfc57c2a to your computer and use it in GitHub Desktop.
Save rafaelvanat/1e6061ecc416dfc57c2a to your computer and use it in GitHub Desktop.

Blind Warrior I

An easy to dev game to practice SOLID and other OOP Principles. In this game, only a few features will be implemented.

Description

Blind Warrior is a command line game. It tells the history of a blind warrior named ZISKA. One day, during his daily breakfast at the Queen Sophia's Cafeteria, the entire city was invaded by the army of the German Empire. A noble hero does not flee without a fight: Ziska took a weapon and fought against all enemies.

The Game Interface

The game will have no input options. Here what it will do:

  • the player will start the game
  • the game will create the player
  • the game will create the enemies
  • the game will auto start the game
  • the game will play all rounds until face the "game over conditions"

What the game should output to the user:

  • Which character the player is fighting with
  • What was the fight result: who wins/loses and remaning player health
  • At the end of game should be printed:
    • the reason of the end of game
    • how many enemies was killed

Game Rules

  • All Ziska actions in the game are played by the computer
  • Ziska will attack every people he finds on his way
  • Ziska can use any weapon, whereas this weapon could not took more than 39% of an enemy health/life
  • Enemies also can use any weapon, whereas this weapon could not took more than 59% of an enemy health/life
  • All weapon has no usage limit ( auto-infinity weapon cheat :P )
  • Citizens have no weapon or their weapon could not hurt Ziska
  • The characters Ziska will fight should be shuffled before the game starts
  • The game is a survivor: no life recharge for Ziska until the end of game.

The game starts with Ziska, the citizens and the enemy army with their respectives weapons. So, Ziska fight ( one-by-one ) with every one he finds in the city. The game finishes when found one of the "game over conditions".

Game Over Conditions

The game will be considered finished when:

  • There are no remaining enemies alive
  • Ziska is dead ( has no health/life available )
  • Ziska killed an innocent citizen.

Considerations about the game development

It is expected that the game developed should comply with the following considerations:

  • The entire software should respect the 4 rules of Simple Design from Ken Beck.
  • Classes should respect the Law of Demeter
  • Methods should have no more than 10 lines
  • Classes should respect the Single Responsibility Principle
  • It could be possible to run with a single ( and simple ) command
  • It could be possible to build the game with a single ( and simple ) command
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment