<?php
error_reporting(-1);
mb_internal_encoding("utf-8");

class World {
	
	public $sideLength;
	public $field = array();
	public $filler = "0";

	function __construct($sideLength) {
		$this->sideLength = $sideLength;
		$this->field = array_fill(1, $sideLength, array_fill(1, $sideLength, $this->filler));		
	}

	function draw() {
		foreach ($this->field as $line) {
			echo implode("  ",$line);
			echo "<br>";
		}
	}

	function place(Animal $animal) {
		
		do {
			$x = mt_rand(1, $this->sideLength);
			$y = mt_rand(1, $this->sideLength);

			if ($this->field[$x][$y] == $this->filler) {
				$this->field[$x][$y] = $animal->icon;
				$animal->placed = true;
				$animal->x = $x;
				$animal->y = $y;
			}

			
		} while ($animal->placed == false);

	}

}

abstract class Animal {
	public $x;
	public $y;
	public $icon;
	public $placed = false;

	function __construct($icon) {
		$this->icon = $icon;
	}
}

class Mouse extends Animal {
	public function move (World $world) {
		
	}
}

$world1 = new World(10);

$mouse1 = new Mouse('<bold>1</bold>');
$mouse2 = new Mouse('2');
$mouse3 = new Mouse('3');
$mouse4 = new Mouse('4');


$world1->place($mouse1);
$world1->place($mouse2);
$world1->place($mouse3);
$world1->place($mouse4);

$world1->draw();

?>