У меня есть карта размером (10,10). Я представляю его объектом под названием Map
. У меня есть Monster
на этой позиции (5,5). Этот монстр должен автоматически менять положение на каждом $turn
и зависеть от $nbMove
. $nbMove
является атрибутом класса Monster
Вы выбираете его в конструкторе Monster
.
$nbMove
- число ходов до того, как он сделает пол-оборота
Вот пример того, что я хочу, когда начинается игра:
Игра в цикле for($turn = 0; $turn<10; $turn++)
То есть, если $nbMove
равно 2. Монстр переходит к случаю (5,6), затем $turn
, он переходит к (5,7), затем $turn
возвращается к (5, 6) и следующий $turn
(5,5). следующий $turn
(5,6), следующий $turn
(5,7), следующий $turn
(5,6) и т. д. ...
То есть, если $nbMove
равно 3. Монстр переходит к случаю (5,6), следующий $turn
он переходит к (5,7), следующий $turn
он переходит к (5,8) ) и следующее $turn
(5,7), следующее $turn
(5,6), следующее $turn
(5,5) и т. д. ...
Он должен идти только по вертикали.
Это похоже на шахматный ход, но он выполняется компьютером и всегда делает одно и то же.
Вот мой код:
<?php
class Monster {
public $horizontal;
public $vertical;
public $nbMove;
function __construct($horizontal, $vertical, $nbMove) {
$this->horizontal = $horizontal;
$this->vertical = $vertical;
$this->nbMove = $nbMove;
}
}
?>
<?php
class Map {
public $width;
public $height;
function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
}
?>
<?php
function moveMonster($turn, $monster, $map) {
// The move
if(// I need a condition there but what condition ??) {
$orc->vertical = $orc->vertical + 1;
} else {
$orc->vertical = $orc->vertical - 1;
}
}
$map = new Map(10,10);
$firstMonster = new Monster(5,5,2);
for($turn = 0; $turn<10; $turn++){
moveMonster($turn, $firstMonster, $map);
}
?>
Я ищу, как заставить моего монстра двигаться, но я не нахожу никакого решения, чтобы это сделать Вот почему я прошу вас решить мою проблему. Я знаю, как заставить его двигаться, но это должно зависеть от числа $turn
и $firstMonster->nbMove
, я думаю.