Skip to content

Latest commit

 

History

History
114 lines (92 loc) · 2.08 KB

README.md

File metadata and controls

114 lines (92 loc) · 2.08 KB

Bee Game

CircleCI

This is my simple implimenation of the PHP Coding Test "The Bee Game"

Bees

There are three types of bees in this game:

  • Queen Bee

    • The Queen Bee has a lifespan of 100 Hit Points.
    • When the Queen Bee is hit, 8 Hit Points are deducted from her lifespan.
    • If/When the Queen Bee has run out of Hit Points, All remaining alive Bees automatically run out of hit points.
    • There is only 1Queen Bee.
  • Worker Bee

    • Worker Bees have a lifespan of 75 Hit Points.
    • When a Worker Bee is hit, 10 Hit Pointsare deducted from his lifespan.
    • There are 5Worker Bees.
  • Drone Bee

    • Drone Bees have a lifespan of 50 Hit Points.
    • When a Drone Bee is hit, 12 Hit Points are deducted from his lifespan.
    • There are 8 Drone Bees.

Install the game

composer install

Run the game.

php play.php

Modify your hive

$hive = new \Game\Hive();
$hive->add("\Game\Bee\Queen", 1);
$hive->add("\Game\Bee\Drone", 5);
$hive->add("\Game\Bee\Worker", 8);

Modify your bees

src/Game/Bee/Queen.php

    /**
     * What health does this bee have?
     *
     * @var int
    */
    protected $health = 100;

    /**
     * Whats an attack on us worth?
     *
     * @var int
    */
    protected $damage = 8;

    /**
     * Release the wildfire?
     *
     * This will kill all bees.
     * @var bool
    */
    protected $BURN_THEM_ALL = true;

Adding new bees is a case of adding a class that extends Bee

namespace Game\Bee;

class Weak extends \Game\Bee
{
    /**
     * What health does this bee have?
     *
     * @var int
    */
    protected $health = 5;

    /**
     * Whats an attack on us worth?
     *
     * @var int
    */
    protected $damage = 5;

    /**
     * Release the wildfire?
     *
     * This will kill all bees.
     * @var bool
    */
    protected $BURN_THEM_ALL = false;

    /**
     * A public name for this bee.
     *
     * @var string
    */
    protected $name = "Weak";
}

Tests

phpunit