<?php
# The blueprint for designing creatures for your game
interface LivingBeing {
public function dealDamage(LivingBeing $opponent);
public function takeDamage(int $damage);
}
interface Race {
public function raceName(): string;
}
class Human implements LivingBeing, Race {
private $hp = 150;
private $offensiveStrength = 30;
public function dealDamage(LivingBeing $opponent) {
$opponent->takeDamage($this->offensiveStrength);
}
public function takeDamage(int $opponent) {
}
public function raceName(): string {
return 'Human';
}
}
class Elf implements LivingBeing, Race {
private $hp = 100;
private $offensiveStrength = 30;
public function dealDamage(LivingBeing $opponent) {
$opponent->takeDamage($this->offensiveStrength);
}
public function takeDamage(int $opponent) {
}
public function raceName(): string {
return 'Elf';
}
}
class Dwarf implements LivingBeing, Race {
private $hp = 300;
private $offensiveStrength = 30;
public function dealDamage(LivingBeing $opponent) {
$opponent->takeDamage($this->offensiveStrength);
}
public function takeDamage(int $opponent) {
}
public function raceName(): string {
return 'Dwarf';
}
}
# I am a junior dev, I am just going to write this code
class Centaur implements LivingBeing, Race {
private $hp = 300;
private $offensiveStrength = 30;
public function dealDamage(LivingBeing $opponent) {
$opponent->takeDamage($this->offensiveStrength);
}
public function takeDamage(int $opponent) {
}
public function raceName(): string {
return 'Centaur';
}
}
class Orc implements LivingBeing, Race {
private $hp = 300;
private $offensiveStrength = 30;
public function dealDamage(LivingBeing $opponent) {
$opponent->takeDamage($this->offensiveStrength);
}
public function takeDamage(int $opponent) {
}
public function raceName(): string {
return 'Orc';
}
}
function listTheirRace (Race ...$list) {
$string = '';
foreach ($list as $being) {
$string .= $being->raceName() . "\n";
}
return $string;
}
$Adam = new Human;
$Lucas = new Elf;
$Jack = new Dwarf;
# Let's fight!
$Gabrielle = new Centaur;
$Guthakug = new Orc;
echo listTheirRace(...[$Adam, $Lucas, $Jack, $Gabrielle, $Guthakug]);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Human
Elf
Dwarf
Centaur
Orc