<?php abstract class Animal { protected $xPoint; protected $yPoint; protected $field; public function __construct(Field $field) { $this->field = $field; } public function getPosition() { return [$this->xPoint, $this->yPoint]; } public function setPosition($x, $y) { $this->xPoint = $x; $this->yPoint = $y; } public function getLabel() { return $this->label; } protected function findOrthogonalSteps() { $orthogonalSteps = []; if($this->xPoint !== 0) { $orthogonalSteps[] = [$this->xPoint - 1, $this->yPoint]; } if($this->yPoint !== 0) { $orthogonalSteps[] = [$this->xPoint, $this->yPoint - 1]; } if($this->xPoint !== $this->field->getSize()) { $orthogonalSteps[] = [$this->xPoint + 1, $this->yPoint]; } if($this->yPoint !== $this->field->getSize()) { $orthogonalSteps[] = [$this->xPoint, $this->yPoint + 1]; } return $orthogonalSteps; } protected function findDiagonalSteps() { $diagonalSteps = []; if($this->xPoint !== 0 && $this->yPoint !== 0) { $diagonalSteps[] = [$this->xPoint - 1, $this->yPoint - 1]; } if($this->yPoint !== 0 && $this->xPoint !== $this->field->getSize()) { $diagonalSteps[] = [$this->xPoint + 1, $this->yPoint - 1]; } if($this->yPoint !== $this->field->getSize() && $this->xPoint !== $this->field->getSize()) { $diagonalSteps[] = [$this->xPoint + 1, $this->yPoint + 1]; } if($this->xPoint !== 0 && $this->yPoint !== $this->field->getSize()) { $diagonalSteps[] = [$this->xPoint - 1, $this->yPoint + 1]; } return $diagonalSteps; } { return ($verticalDiff + $horizontalDiff) * 10; } { $enemiesPrices = []; foreach($enemies as $enemy) { $enemiesPrices[$this->calcStepPrice($this->getPosition(), $enemy->getPosition())] = $enemy; } } { foreach($animals as $animal) { } } return $availableSteps; } { $pricesOfSteps = []; $endingPosition = $nearestEnemy->getPosition(); $availableSteps = $this->findAvailableSteps($allys, $dogs); foreach($availableSteps as $step) { $price = $this->calcStepPrice($step, $endingPosition); $pricesOfSteps[$price] = $step; } return $pricesOfSteps; } } class Mouse extends Animal { protected $label = "M"; private $visibleFieldRadius = 9; private $isProtected; private $isAlive = true; public function getState() { return $this->isAlive; } public function setState($state) { $this->isAlive = $state; } protected function findAvailableSteps($mouses, $dogs) { $availableSteps = $this->findOrthogonalSteps(); $availableSteps[] = $this->getPosition(); return $availableSteps; } private function findVisibleField($size) { $visibleField = []; $visibleField = []; for($i = $leftBound; $i <= $rightBound; $i++) { for($j = $upBound; $j <= $downBound; $j++) { $visibleField[] = [$i, $j]; } } return $visibleField; } { $visibleAnimals = []; $visibleField = $this->findVisibleField($radius); foreach($animals as $animal) { $visibleAnimals[] = $animal; } } return $visibleAnimals; } { $this->isProtected = false; $mousesPos = []; foreach($mouses as $mouse) { $mousesPos[] = $mouse->getPosition(); } $counter = 0; foreach($mousesPos as $position) { $counter++; } } if($counter >= 2) { $this->isProtected = true; } } public function isProtected() { return $this->isProtected; } public function makeStep() { $cats = $this->field->getAnimalsByType("Cat"); $mouses = $this->field->getAnimalsByType("Mouse"); $dogs = $this->field->getAnimalsByType("Dog"); $this->checkProtection($mouses); $visibleCats = $this->checkVisibleAnimals($cats, 9); if($visibleCats) { $nearestEnemy = $this->findNearestEnemy($visibleCats); $pricesOfSteps = $this->setPricesOfSteps($nearestEnemy, $mouses, $dogs); $this->xPoint = $position[0]; $this->yPoint = $position[1]; } else { $availableSteps = $this->findAvailableSteps($mouses, $dogs); $position = $availableSteps[$positionIndex]; $this->xPoint = $position[0]; $this->yPoint = $position[1]; } } } class Cat extends Animal { protected $label = "K"; private $stepsToSleepCounter = 1; private $sleepy = false; protected function findAvailableSteps($cats, $dogs) { $availableSteps = $this->excludeClosedPositions($cats, $availableSteps); $availableSteps[] = $this->getPosition(); $availableSteps = $this->checkDogs($dogs, $availableSteps); $availableSteps[] = $this->getPosition(); return $availableSteps; } { $dogsAdjacentPos = []; foreach($dogs as $dog) { } foreach($availableSteps as $step) { } } return $availableSteps; } public function makeStep() { if($this->label === "@") { $this->label = "K"; $this->stepsToSleepCounter = 0; } else { $cats = $this->field->getAnimalsByType("Cat"); $mouses = $this->field->getAnimalsByType("Mouse"); $dogs = $this->field->getAnimalsByType("Dog"); $nearestEnemy = $this->findNearestEnemy($mouses); $pricesOfSteps = $this->setPricesOfSteps($nearestEnemy, $cats, $dogs); $this->xPoint = $position[0]; $this->yPoint = $position[1]; $this->stepsToSleepCounter++; if($position === $nearestEnemy->getPosition()) { $nearestEnemy->setState(false); $this->label = "@"; $this->stepsToSleepCounter = 0; } else if($this->stepsToSleepCounter === 8) { $this->label = "@"; $this->stepsToSleepCounter = 0; } else if($nearestEnemy->isProtected()) { } } } } class Dog extends Animal { protected $label = "C"; private function findAvailableSteps() { $availableSteps = []; if($this->xPoint > 1) { $availableSteps[] = [$this->xPoint - 2, $this->yPoint]; } if($this->yPoint > 1) { $availableSteps[] = [$this->xPoint, $this->yPoint - 2]; } if($this->xPoint + 1 < $this->field->getSize()) { $availableSteps[] = [$this->xPoint + 2, $this->yPoint]; } if($this->yPoint + 1 < $this->field->getSize()) { $availableSteps[] = [$this->xPoint, $this->yPoint + 2]; } if($this->xPoint > 1 && $this->yPoint > 1) { $availableSteps[] = [$this->xPoint - 2, $this->yPoint - 2]; } if($this->yPoint > 1 && $this->xPoint + 1 < $this->field->getSize()) { $availableSteps[] = [$this->xPoint + 2, $this->yPoint - 2]; } if($this->yPoint + 1 < $this->field->getSize() && $this->xPoint + 1 < $this->field->getSize()) { $availableSteps[] = [$this->xPoint + 2, $this->yPoint + 2]; } if($this->xPoint > 1 && $this->yPoint + 1 < $this->field->getSize()) { $availableSteps[] = [$this->xPoint - 2, $this->yPoint + 2]; } return $availableSteps; } public function makeStep() { $allAnimals = $this->field->getAnimals(); $availableSteps = $this->findAvailableSteps(); $availableSteps = $this->excludeClosedPositions($allAnimals, $availableSteps); $availableSteps[] = $this->getPosition(); $position = $availableSteps[$positionIndex]; $this->xPoint = $position[0]; $this->yPoint = $position[1]; } public function getAdjacentPositions() { } } class Field { private $size; private $animals; public function __construct($size) { $this->size = $size; } public function getAnimals() { return $this->animals; } public function addAnimal(Animal $animal) { $this->animals[] = $animal; } public function removeAnimal(Animal $animal) { } public function getSize() { return $this->size; } private function drawSchema() { $schema = []; for($i = $this->size; $i >= 0; $i--) { for($j = 0; $j <= $this->size; $j++) { $schema[] = [$j, $i]; } } foreach($this->animals as $animal) { $schema[$key] = $animal->getLabel() . " "; } return $schema; } public function getAnimalsByType($animalType) { $animals = []; foreach($this->animals as $animal) { $animals[] = $animal; } } return $animals; } public function __toString() { $schema = $this->drawSchema(); foreach($schema as $elem) { $schema[$key] = ". "; } } return $result; } } class Game { private $numMouses; private $numCats; private $numDogs; private $numSteps; private $field; private $stepNumber = 0; public function __construct($numMouses, $numCats, $numDogs, $fieldSize, $numSteps) { $this->numMouses = $numMouses; $this->numCats = $numCats; $this->numDogs = $numDogs; $this->numSteps = $numSteps; $this->field = new Field($fieldSize); } private function createAnimals($limit, $animalType) { for($i = 0; $i < $limit; $i++) { $animal = new $animalType($this->field); $this->field->addAnimal($animal); } } private function animalsMakeSteps($animalClass) { foreach($this->field->getAnimals() as $animal) { $animal->makeStep(); } } } private function removeDeadMouses() { foreach($this->field->getAnimals() as $animal) { if($animal->getState() === false) { $this->field->removeAnimal($animal); } } } } private function setAnimalPositions() { $unavailable = []; foreach($this->field->getAnimals() as $animal) { do { $animal->setPosition($xPoint, $yPoint); $unavailable[] = $animal->getPosition(); } } private function makeReport() { $info = "Ход: " . $this->stepNumber . return $info; } public function start() { $this->createAnimals($this->numMouses, "Mouse"); $this->createAnimals($this->numCats, "Cat"); $this->createAnimals($this->numDogs, "Dog"); $this->setAnimalPositions(); $this->stepNumber++; echo $this->makeReport() . "\n" . $this->field . "\n"; for($i = 1; $i < $this->numSteps; $i++) { $this->animalsMakeSteps("Mouse"); $this->animalsMakeSteps("Cat"); $this->animalsMakeSteps("Dog"); $this->removeDeadMouses(); $this->stepNumber++; echo $this->makeReport() . "\n" . $this->field . "\n"; break; } } } } $game = new Game(4, 2, 1, 15, 30); $game->start();
Standard input is empty
Ход: 1 Мышек: 4 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . M . . . . . . . . . . . . . . . . . . Ход: 2 Мышек: 4 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . Ход: 3 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . Ход: 4 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 5 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K K . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . Ход: 6 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . K . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . M . . . . . . . . . . . . . . . . . . . Ход: 7 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . M . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . M . . . Ход: 8 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . @ . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . Ход: 9 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . Ход: 10 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . C . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . Ход: 11 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . M . . . . . Ход: 12 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . M Ход: 13 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . M . Ход: 14 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . M Ход: 15 Мышек: 3 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . K . . . . . . . . . . . M . . . M . Ход: 16 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . K . . . . . . . . . M . . . . . @ Ход: 17 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . M . . . . . @ K Ход: 18 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . M . . . . . K K Ход: 19 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . M . . . . K . K Ход: 20 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . K . K . Ход: 21 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . K . K . . . . . . . . . . . . . . . . . . Ход: 22 Мышек: 2 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 23 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 24 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . . . . . . . . . . . C . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 25 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 26 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 27 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 28 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 29 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ход: 30 Мышек: 1 Кошек: 2 Собак: 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M . . . K . K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .