Biyernes, Setyembre 28, 2012

<html>
    <head>
        <title>Try Out</title>
        <link rel="stylesheet" type="text/css" href="css/theme.css"/>
    </head>
    <body>
        <?php   
            $link = mysql_connect('localhost', 'root', '');
       
            mysql_select_db('game_db', $link);
           
        ?>
       
       
        <div id="wrapper">
            <div id="top_container">
                <div id="header">Battle Warriors</div>
            </div>
               
            <div id="middle_container" >
                <div id="ch1">
                    <div id="selector1">
                        <select name="warrior1">
                            <option value="Ninja">Ninja</option>
                            <option value="brawler">Brawler</option>
                            <option value="Samurai">Samurai</option>
                        </select>
                    </div>
                    <div id="img">
                        <img src="images/ninja.jpg" class="img"/>
                    </div>
                    <div id="stats">
                        <?php
                            include("warrior.php");
                            include("ninja.php");
                            include("brawler.php");
                            include("samurai.php");
                            include("Duel.php");
                           
                            $ninja = new Ninja();
                           
                            $ninja->setName('Ninja');
                            $ninja->setAttack(rand(65, 75));
                            $ninja->setDefence(rand(40, 50));
                            $ninja->setSpeed(rand(40, 65));
                            $ninja->setEvade(rand(30, 35));
                            $ninja->setHealth(rand(40, 60));
                           
                           
                            echo "
                                <ul>
                                    <li>Name: </li>
                                    <li>Type: {$ninja->getName()} </li>
                                    <li>Attack:{$ninja->getAttack()} </li>
                                    <li>Defence:{$ninja->getDefence()} </li>
                                    <li>Speed:{$ninja->getSpeed()} </li>
                                    <li>Evade:{$ninja->getEvade()} </li>
                                </ul>
                            ";
                        ?>
                    </div>
                    <div id="health_bar">
                        <?php echo $ninja->getHealth(); ?>
                    </div>
                   
                </div>
                <div id="versus">
                    <div id="img">
                        <img src="images/versus.jpg" class="versus"/>
                    </div>
                    <div id="attack_btn">
                        <input type="button" name="tbn" value="Duel" />
                    </div>
                </div>
                <div id="ch2">
                    <div id="selector2">
                        <select name="warrior2">
                            <option value="Ninja">Ninja</option>
                            <option value="brawler">Brawler</option>
                            <option value="Samurai">Samurai</option>
                        </select>
                    </div>
                    <div id="img">
                        <img src="images/ninja.jpg" class="img"/>
                    </div>
                    <div id="stats">
                        <?php   
                            /*$samurai = new Samurai();
                            $samurai->setName('Samurai');
                            $samurai->setAttack(rand(75, 80));
                            $samurai->setDefence(rand(35, 40));
                            $samurai->setSpeed(rand(60, 80));
                            $samurai->setEvade(rand(30, 40));
                            $samurai->setHealth(rand(60, 100));
                           
                            echo "
                                <ul>
                                    <li>Name: </li>
                                    <li>Type: {$samurai->getName()} </li>
                                    <li>Attack:{$samurai->getAttack()} </li>
                                    <li>Defence:{$samurai->getDefence()} </li>
                                    <li>Speed:{$samurai->getSpeed()} </li>
                                    <li>Evade:{$samurai->getEvade()} </li>
                                </ul>
                            ";*/
                            $brawler = new Brawler();
                           
                            $brawler->setName('Brawler');
                            $brawler->setAttack(rand(75, 80));
                            $brawler->setDefence(rand(35, 40));
                            $brawler->setSpeed(rand(60, 80));
                            $brawler->setEvade(rand(30, 40));
                            $brawler->setHealth(rand(60, 100));
                           
                            echo "
                                <ul>
                                    <li>Name: </li>
                                    <li>Type: {$brawler->getName()} </li>
                                    <li>Attack:{$brawler->getAttack()} </li>
                                    <li>Defence:{$brawler->getDefence()} </li>
                                    <li>Speed:{$brawler->getSpeed()} </li>
                                    <li>Evade:{$brawler->getEvade()} </li>
                                </ul>
                            ";
                        ?>
                    </div>
                    <div id="health_bar">
                        <?php
                            echo $brawler->getHealth();
                        ?>
                    </div>
                </div>
            </div>
           
           
            <div id="bottom_container" >
                <div id="record">Battle Record</div>
                <div id="table_record">
                    <table border="1" cellpadding="10">
                        <tr>
                            <th>Turn</th>
                            <th>Attacker</th>
                            <th>Defender</th>
                            <th>Evade</th>
                            <th>Attacker Special Skill</th>
                            <th>Defender Special Skill</th>
                            <th>Damage Dealt</th>
                        </tr>
                        <?php
                            $duel = new Duel(30);
                            $duel->Start(array(&$ninja, &$brawler));
                        ?>
                    </table>
                   
                </div>
               
            </div>
        </div>
       
        <?php
           
            mysql_close($link);
        ?>
    <body>
</html>
<?php
    class Samurai extends Warrior {
        public $gainHealth = array();
       
        public function _constructor() {
            $this->specialSkill = 'Gain 10 Health';
        }
       
        public function Attack(&$character) {
            $arr = array();
            $rand = array();
            $damageDealt = 0;
           
            for ($i = 0; $i < 100; ++$i) {
                $arr[$i] = 0;
                $rand[$i] = $i;

                if ($i < 10) {
                    $this->gainHealth[$i] = 0;
                }
            }

            $evadeRate = $character->getEvade();
            for($i = 0; $i < $evadeRate; ++$i) {
                $this->Swap($rand[$i], $rand[rand($i, 99)]);
                $arr[$rand[$i]] = 1;
            }

            if ($this->isEvade = $arr[rand(0, 99)]) {
                $character->evade();
            } else {
                $damageDealt = $this->attack - $character->defence;
                $character->setHealth($damageDealt);
            }
           
            return $damageDealt;
        }

        public function Swap(&$a, &$b) {
            $tmp = $a;
            $a = $b;
            $b = $tmp;
        }

        public function evade() {
            $this->gainHealth[rand(0, 9)] = 1;

            if ($this->gainHealth[rand(0, 9)] == 1) {
                $this->setHealth($this->getHealth() + 10);
                $this->isSkillActivated = 1;
            }
        }
    }
   
?>

brawler.php

<?php
    class Ninja extends Warrior {
        public $name;
       
        public function _constructor() {
            $this->specialSkill = 'Double Attack';
        }
       
        public function Attack(&$character) {
            $arr = array();
            $rand = array();
            $doubleAttack = array();
           
            $damageDealt = 0;
           
            for ($i = 0; $i < 100; ++$i) {
                $arr[$i] = 0;
                $rand[$i] = $i;

                if ($i < 20) {
                    $doubleAttack[$i] = 0;
                }
            }

            $evadeRate = $character->getEvade();
            for($i = 0; $i < $evadeRate; ++$i) {
                $this->Swap($rand[$i], $rand[rand($i, 99)]);
                $arr[$rand[$i]] = 1;
            }

            // initialize special skill
            $doubleAttack[rand(0, 19)] = 1;
            $isDoubleAttack = $doubleAttack[rand(0, 19)];
           
            if ($isDoubleAttack) {
                $this->setAttack($this->getAttack() * 2);
                $this->isSkillActivated = 1;
            }
           
            //
            if ($this->isEvade = $arr[rand(0, 99)]) {
                $character->evade();
            } else {
                $damageDealt = $this->attack - $character->defence;
                $character->setHealth($damageDealt);
            }
           
            if ($isDoubleAttack)
                $this->setAttack($this->getAttack() / 2);
               
            return $damageDealt;
        }

        public function Swap(&$a, &$b) {
            $tmp = $a;
            $a = $b;
            $b = $tmp;
        }
    }
?>

ninja.php

<?php
    class Brawler extends Warrior {
        public $name;
       
        public function _constructor() {
            $this->specialSkill = 'Increase Defence by 10';
        }
       
        public function Attack(&$character) {
            $arr = array();
            $rand = array();
            $damageDealt = 0;
           
            for ($i = 0; $i < 100; ++$i) {
                $arr[$i] = 0;
                $rand[$i] = $i;
            }

            $evadeRate = $character->getEvade();
            for($i = 0; $i < $evadeRate; ++$i) {
                $this->Swap($rand[$i], $rand[rand($i, 99)]);
                $arr[$rand[$i]] = 1;
            }

            if ($this->isEvade = $arr[rand(0, 99)]) {
                $character->evade();
            } else {
                $damageDealt = $this->attack - $character->defence;
                $character->setHealth($damageDealt);
            }
           
            return $damageDealt;
        }

        public function Swap(&$a, &$b) {
            $tmp = $a;
            $a = $b;
            $b = $tmp;
        }

        public function setHealth($health) {
            $this->health = $health;

            //Initialize special skill
            if ($this->health < ($this->health * 0.20)) {
                $this->setDefence($this->getDefence() + 10);
                $this->isSkillActivated = 1;
            }
        }
    }
?>

warrior.php

<?php
    abstract class Warrior {
        protected $health;
        protected $attack;
        protected $defence;
        protected $speed;
        protected $evade;
        protected $name;
        protected $isEvaded;
        public $specialSkill;
        public $isSkillActivated;
       
        abstract protected function Attack(&$character);

        public function _constructor() {
            //
        }

        public function setHealth($health) {
            $this->health = $health;
        }

        public function getHealth() {
            return $this->health;
        }

        public function setAttack($attack) {
            $this->attack = $attack;
        }

        public function getAttack() {
            return $this->attack;
        }

        public function setDefence($defence) {
            $this->defence = $defence;
        }

        public function getDefence() {
            return $this->defence;
        }

        public function setSpeed($speed) {
            $this->speed = $speed;
        }

        public function getSpeed() {
            return $this->speed;
        }

        public function setEvade($evade) {
            $this->evade = $evade;
        }

        public function getEvade() {
            return $this->evade;
        }

        public function setName($name) {
            $this->name = $name;
        }

        public function getName() {
            return $this->name;
        }

        public function evade() {
            // placeholder
        }
    }

?>

duel.php

<?php
    class Duel {
        public $turns;
       
        public function __construct($turns) {
            $this->turns = $turns;
        }
       
        public function Start($ch) {
            $turn = 0;
            $first_turn = 0;
            $ch[0]->isSkillActivated = 0;
            $ch[1]->isSkillActivated = 0;
           
            if ($ch[0]->getSpeed() < $ch[1]->getSpeed()) {
                $first_turn = 1;
            } else {
                $first_turn = 1;
            }

            while($ch[0]->getHealth() > 0 && $ch[1]->getHealth() > 0 && $turn < $this->turns) {
                $name1 = $ch[$first_turn]->getName();
                $name2 = $ch[!$first_turn]->getName();
               
                $attackerSkill = '&nbsp;';
                $defenderSkill = '&nbsp;';
               
                if($ch[$first_turn]->isSkillActivated) {
                    $attackerSkill = $ch[$first_turn]->specialSkill;
                }
               
                if($ch[!$first_turn]->isSkillActivated) {
                    $defenderSkill = $ch[!$first_turn]->specialSkill;
                }
               
                $damageDealt = $ch[$first_turn]->Attack($ch[!$first_turn]);
               
                echo "
                    <tr>
                        <td>" . ($turn + 1) . "</td>
                        <td>{$ch[$first_turn]->getName()}</td>
                        <td>{$ch[!$first_turn]->getName()}</td>
                        <td>" . (int)$this->isEvade . "</td>
                        <td>{$attackerSkill}</td>
                        <td>{$defenderSkill}</td>
                        <td>{$damageDealt}</td>
                    </tr>
                ";

                ++$turn;
                $first_turn = !$first_turn;
            }
        }
    }
?>

Huwebes, Setyembre 27, 2012


<?php
class Samurai extends Warrior {
protected $gainHealth = array();

public function Attack(&$character) {
$arr = array();
$rand = array();

for ($i = 0; $i < 100; ++$i) {
$arr[$i] = 0;
$rand[$i] = $i;

if ($i < 10) {
$gainHealth[$i] = 0;
}
}

$evadeRate = $character->getEvade();
for($i = 0; $i < $evadeRate; ++$i) {
$this->Swap($rand[$i], $rand[rand($i, 99)]);
$arr[$rand[$i]] = 1;
}

if ($arr[rand(0, 99)] == 0) {
$character->setHealth($character->getHealth() - ($this->attack - $character->defence));
} else {
// initialize special skill
echo '<br />' . $this->getEvade() . ' Evaded <br />';
$character->evade();
//

}
}

public function Swap(&$a, &$b) {
$tmp = $a;
$a = $b;
$b = $tmp;
}

public function evade() {
$gainHealth[rand(0, 9)] = 1;

if ($gainHealth[rand(0, 9)] == 1) {
$this->setHealth($this->getHealth() + 10);
echo '<br />' . $this->getName() . ' Gained 10 Health: ' . $this->getHealth() . ' <br />';
}
}
}
?>

<?php
include("warrior.php");

class Ninja extends Warrior {
public $name;

public function Attack(&$character) {
$arr = array();
$rand = array();
$doubleAttack = array();

for ($i = 0; $i < 100; ++$i) {
$arr[$i] = 0;
$rand[$i] = $i;

if ($i < 20) {
$doubleAttack[$i] = 0;
}
}

$evadeRate = $character->getEvade();
for($i = 0; $i < $evadeRate; ++$i) {
$this->Swap($rand[$i], $rand[rand($i, 99)]);
$arr[$rand[$i]] = 1;
}

// initialize special skill
$doubleAttack[rand(0, 19)] = 1;

if ($doubleAttack[rand(0, 19)] == 1) {
$this->setAttack($this->getAttack() * 2);
echo '<br />' . $this->getAttack() . ' Double Attack! <br />';
}
//

if ($arr[rand(0, 99)] == 0) {
$character->setHealth($character->getHealth() - ($this->attack - $character->defence));
} else {
echo '<br />' . $character->getEvade() . ' Evaded <br />';
$character->evade();
}

$this->setAttack($this->getAttack() / 2);
}

public function Swap(&$a, &$b) {
$tmp = $a;
$a = $b;
$b = $tmp;
}
}
?>

<?php

class Brawler extends Warrior {
public $name;

public function Attack(&$character) {
$arr = array();
$rand = array();

for ($i = 0; $i < 100; ++$i) {
$arr[$i] = 0;
$rand[$i] = $i;
}

$evadeRate = $character->getEvade();
for($i = 0; $i < $evadeRate; ++$i) {
$this->Swap($rand[$i], $rand[rand($i, 99)]);
$arr[$rand[$i]] = 1;
}

if ($arr[rand(0, 99)] == 0) {
$character->setHealth($character->getHealth() - ($this->attack - $character->defence));
} else {
echo '<br />' . $character->getEvade() . ' Evaded <br />';
$character->evade();
}
}

public function Swap(&$a, &$b) {
$tmp = $a;
$a = $b;
$b = $tmp;
}

public function setHealth($health) {
$this->health = $health;

//Initialize special skill
if ($this->health < ($this->health * 0.20)) {
$this->setDefence($this->getDefence() + 10);
}
}
}
?>

<?php
abstract class Warrior {
protected $health;
protected $attack;
protected $defence;
protected $speed;
protected $evade;
protected $name;

abstract protected function Attack(&$character);

public function _constructor() {
//
}

public function setHealth($health) {
$this->health = $health;
}

public function getHealth() {
return $this->health;
}

public function setAttack($attack) {
$this->attack = $attack;
}

public function getAttack() {
return $this->attack;
}

public function setDefence($defence) {
$this->defence = $defence;
}

public function getDefence() {
return $this->defence;
}

public function setSpeed($speed) {
$this->speed = $speed;
}

public function getSpeed() {
return $this->speed;
}

public function setEvade($evade) {
$this->evade = $evade;
}

public function getEvade() {
return $this->evade;
}

public function setName($name) {
$this->name = $name;
}

public function getName() {
return $this->name;
}

public function evade() {
// placeholder
}
}

?>