[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Еще задачки 3
Страницы: 1, 2
Alchemist
Для всех пацифистов, юмористов, нигилистов, по*уистов и прочих *истов - вот вам та же задача, но в более "програмном" оформлении:

class Frog {
private $position, $direction, $jump_len, $dead = false, $step = 0;

// значение $limit тут ТОЛЬКО для того, чтобы не выбежать за пределы памяти / sizeof(int)
// основывать решение на знании этого параметра НЕЛЬЗЯ.
// для целей решения задачи считать $limit равным бесконечности

private $limit = 1000;

private function jump(){
$this->position += $this->direction * $this->jump_len;
}

public function __construct($start = null, $dir = null){
$this->position = is_numeric($start) ? intval($start) : mt_rand(-$this->limit, $this->limit);
$this->direction = is_numeric($dir) ? (($dir < 0) ? -1 : 1) : (mt_rand(1,2) * 2 - 3); // -1 / +1
$this->jump_len = mt_rand(1, $this->limit);

$this->jump();
}

// функция проверяет совпадение позиции лягушки и камня и возвращает (bool) попали или нет.
public function throw_stone($x){
if ($this->dead){
echo 'Лягушка уже каюк. (x = ',$this->position,')',PHP_EOL;
return true;
}

echo 'Бросок ',++$this->step,': камень кинут в ',intval($x),' - ';

if (intval($x) == $this->position){
echo $str,'Шмяк !!!',PHP_EOL;
$this->dead = true;
} else {
echo 'мазила...',PHP_EOL;
$this->jump();
}

return $this->dead;
}
}

Вариант 1:
$kermit = new Frog(0, 1);

Вариант 2:
$kermit = new Frog(0);

Вариант 3:
$kermit = new Frog();


Задача - получить значение TRUE от метода $kermit->throw_stone($x).

.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.