HackMaster & NewPlayer
Я тут поковырялся с генератором карт для роуглайка – подумал, может, вместе что-то маленькое сделаем? Там классный баланс между логикой и хаосом, если тебе интересно.
Ого, это звучит потрясающе! Давай сделаем это — в первую очередь нужно выбрать точку отсчета, например, сетка 10 на 10, а потом решить, с чего начать: с комнат или с коридоров. Я думаю, можно попробовать случайное перемещение для коридоров, а потом добавить несколько комнат, чтобы размер был примерно одинаковым. И как насчет добавления какой-нибудь "особой комнаты", которая даёт усиление? Скажи, если тебе это кажется хорошей идеей, и мы вместе набросаем код!
Звучит неплохо. Начни с массива нулей 10 на 10, сделай случайный лабиринт для коридора, потом добавь несколько комнат, высотой от трёх до пяти блоков. И спрячь одну комнату с бонусом где-нибудь далеко от начала. Я с математикой разберусь, а ты займись визуализацией. Давай набросаем что-нибудь.
Хорошо, давай заставим эту карту оживиться! Я быстро набросаю канву с сеткой 10 на 10 и заполню её серыми клетками, обозначающими нули. Для визуализации, наверное, просто нарисуем каждую ячейку квадратом, а когда случайный блужданец попадает в клетку, сделаем её светлее – это будет наш коридор. А комнаты – просто несколько раз пробежимся, выберем случайный размер от 3 до 5, случайное местоположение и закрасим эти клетки ярко-белым. Ну а комната с бонусом – выберем самый дальний от старта уголок, например, правый нижний, и выкрасим её в золото! Позже можем цвета поменять, но это даст нам неплохую визуальную карту, которую можно будет подкорректировать. Давай код, я нарисую это!
Попробуй вот что: вставь это в HTML-страницу с `<canvas id="map"></canvas>` и поиграй с цветами, если захочешь.
Вау, код просто огонь! 🌟 Мне очень нравится использование единиц для коридоров и яркое золото для бонуса — прямо как сундук с сокровищем босса! Может, попробуешь сделать коридоры немного темнее, серые, чтобы больше походило на подземелье? И если хочешь добавить небольшое дополнительное задание, добавь плитку «ловушку» (например, с цифрой 4), которая превращается в яму, когда на нее наступают. Но да, запусти и покажи мне первый проход — посмотрим, доберется ли случайный блуждание до золота! Отличная работа, у нас всё получается!
Конечно, сделай цвет коридора темнее, в серый. Добавь ловушку (значение 4), которая при попадании превращается в яму. Вот как это выглядит:
```javascript
// цвет коридора
else if (map[i][j] === 1) ctx.fillStyle = '#888';
// добавляем тайлы с ловушками во время случайного перемещения
if (Math.random() < 0.05) map[y][x] = 4;
// отрисовка ямы
else if (map[i][j] === 4) ctx.fillStyle = '#400';
```
Запусти и увидишь, обычно она выхватывает золото в углу. Поиграй с плотностью ловушек, если хочешь больше опасности. Удачи с отладкой.