<?php
abstract class Animal{
protected $x;
protected $y;
protected $icon;
public function __construct($coordinateX, $coordinateY, $symbol){
$this->x = $coordinateX;
$this->y = $coordinateY;
$this->icon = $symbol;
}
public function getCoordinateX(){
return $this->x;
}
public function getCoordinateY(){
return $this->y;
}
public function getIcon(){
return $this->icon;
}
}
class Mouse extends Animal{
}
class GameField{
protected $field;
public function __construct($height, $width){
}
public function printField(){
foreach($this->field as $value){
foreach($value as $dot){
echo $dot;
}
echo "\n";
}
}
public function aquireMouse(Mouse $mice){
$x = $mice->getCoordinateX();
$y = $mice->getCoordinateY();
$this->field[$x][$y]=$mice->getIcon();
}
}
$test = new GameField(20, 20);
$mouse1 = new Mouse(3, 15, " 1 ");
$test->aquireMouse($mouse1);
$test->printField();
PD9waHAKYWJzdHJhY3QgY2xhc3MgQW5pbWFsewoJcHJvdGVjdGVkICR4OwoJcHJvdGVjdGVkICR5OwoJcHJvdGVjdGVkICRpY29uOwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29vcmRpbmF0ZVgsICRjb29yZGluYXRlWSwgJHN5bWJvbCl7CgkJJHRoaXMtPnggPSAkY29vcmRpbmF0ZVg7CgkJJHRoaXMtPnkgPSAkY29vcmRpbmF0ZVk7CgkJJHRoaXMtPmljb24gPSAkc3ltYm9sOwoJfQoJcHVibGljIGZ1bmN0aW9uIGdldENvb3JkaW5hdGVYKCl7CgkJcmV0dXJuICR0aGlzLT54OwoJfQoJcHVibGljIGZ1bmN0aW9uIGdldENvb3JkaW5hdGVZKCl7CgkJcmV0dXJuICR0aGlzLT55OwoJfQoJcHVibGljIGZ1bmN0aW9uIGdldEljb24oKXsKCQlyZXR1cm4gJHRoaXMtPmljb247Cgl9Cn0KCmNsYXNzIE1vdXNlIGV4dGVuZHMgQW5pbWFsewoKfQoKCmNsYXNzIEdhbWVGaWVsZHsKCXByb3RlY3RlZCAkZmllbGQ7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRoZWlnaHQsICR3aWR0aCl7CgkJJHRoaXMtPmZpZWxkID0gYXJyYXlfZmlsbCgwLCAkaGVpZ2h0LCBhcnJheV9maWxsKDAsICR3aWR0aCwgIiAuICIpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiBwcmludEZpZWxkKCl7CgkJZm9yZWFjaCgkdGhpcy0+ZmllbGQgYXMgJHZhbHVlKXsKCQkJZm9yZWFjaCgkdmFsdWUgYXMgJGRvdCl7CgkJCQllY2hvICRkb3Q7CgkJCX0KCQkJZWNobyAiXG4iOwoJCX0KCX0KCXB1YmxpYyBmdW5jdGlvbiBhcXVpcmVNb3VzZShNb3VzZSAkbWljZSl7CgkJJHggPSAkbWljZS0+Z2V0Q29vcmRpbmF0ZVgoKTsKCQkkeSA9ICRtaWNlLT5nZXRDb29yZGluYXRlWSgpOwoJCSR0aGlzLT5maWVsZFskeF1bJHldPSRtaWNlLT5nZXRJY29uKCk7Cgl9Cn0KCgoKJHRlc3QgPSBuZXcgR2FtZUZpZWxkKDIwLCAyMCk7CgokbW91c2UxID0gbmV3IE1vdXNlKDMsIDE1LCAiIDEgIik7CiR0ZXN0LT5hcXVpcmVNb3VzZSgkbW91c2UxKTsKJHRlc3QtPnByaW50RmllbGQoKTs=