Двач-помогач, можешь ли ты мне словами объяснить, как написать на любом яп алгоритм игры муха? Не могу понять уже который день, как ии научить перемещать муху в правильном направлении?
Была такая идея - рандомное направление. Но тут возникает вопрос - а что если рандом выдаст неправильное направление? например - муха стоит в самой верхней клетке, а выдает значение - вверх, получается, что и это нужно просчитать, но как это сделать в минимальное количество действий?
Вот правила игры: муха стоит в центре, в начале игры. Она невидимая. Игроков от 2 до 4. Каждый игрок может сделать только один ход - переместить муху ТОЛЬКО по клеткам поля игры, выходить за границы нельзя - вправо, влево, вверх, вниз. После того как все сделали свой ход - игрок должен угадать где находится муха (на какой клетке)
>>234681032 Объясни по подробней, все же не могу понять полностью логику. Допустим у меня есть массив:
000 010 000
где 1 = это муха
Я перемещаю муху вправо
000 001 000
Мухе теперь каким-то образом нужно понять, что у нее три пути - вверх, влево, и вниз. Но если мы ей скажем - перемещайся в ячейку там, где свободно, то она сможет пренебречь правилом - ходить только в 4 направлениях и сможет переместиться куда угодно, например так:
>>234679458 (OP) сделай функцию создатель обьектов клетка. обьект клетка имеет свойства -ряд по горизонтали -ряд по верткали -сосед снизу -сосед справа -сосед слева -сосед сверху -муха в клетке - ДА\НЕТ
сделай функцию заполняющую свойства обьекта ссылками на его соседей.
например у обьекта центральная клетка. свойство сосед сверху будет вести на обьект верхняя вторая клетка.
сделай функцию ход. при которой прошлая клетка очищается от свойства МУХА В КЛЕТКЕ. а следующая клетка получает это свойство как true/ если соеда нет - ход запрещен
Кароче вот твое поле 123 456 789 Просто и без задней мысли берешь и делаешь 9 кейсов для генерирования рандомного числа Например если муха в 9, то рандом должен выдать что то из списка 8 5 6
>>234683042 5 - не может быть. В твоем случае муха может походить только влево и вверх, то есть только 8 и 6, но мне нужно компактное решение заместо просчитывания, которое займет огромное количество времени
муха - переменная, каждый ход ей циклом присваивается значение одной из окружающих 8 клеток, если ноль перезапуск цикла присвоения, на последнем ходу ретурном получаешь положение мухи