Обновить
2
6

Разработчик

Отправить сообщение

да, именно, одним из нюансов было сделать простую игру, чтобы не изобретать "шахматы"

При создании игры не руководстовался какими-то определнными правилами Русских точек или Го, не было каких-то стандартов поля, в основе был листик в клеточку и просто ставить точки на пересении линии и стараться захватить бОльшую территорию. Да для интереса ввел подсчет очков по такой логике. Захват вражеской точки - 1 очко, каждая захваченная новая территория за 1000 единиц - 1 очко, за захват вражеской территории удвоенная награда. Т.е. захватили территорию размером 1200, в ней вражеская территория размером 900, то подсчет будет такой. Новая территория 1200-900=300. Вражеская территория 900*2=1800, итого 1800+300=2100, вот и 2 очка и 100единиц территории.

Да, я не руководствовался какими-то жесткими правилами, на входе идеи был просто листик в клеточку и простой захват территории.

Не, ну тут-то думать надо, баги обрабатывать. А так всё сливаешь ИИшке, описываешь баги, пусть сам думает, что и как писать =)

Спасибо, записал себе на листочек ожидания дорабток

обратка логики на сервере же. Или как это сделать? Дайте идею

Именно, точно! Жаль точки.орг уже мертв. Но как говорится все новое - хорошо забытое старое

ГО это для умных, а тут так песочница - окружи и захвати

Вы совершенно правы, сходесть с ГО огромна, но она проще. Немного упрощенная механика, просто окружай точки и захватывай их. А в ГО сам захват точек и правла расположения точек немного сложнее

Кстати, пытал его писать понятный код. Да я не вчитывался, но вырвать кусок из кода и разобраться, вроде можно. Вот кусок метода...

_removeEnemyDots(inside) {
        const enemy = this.lastPlayer === "blue" ? "red" : "blue";
        const newDots = [];
        let removed = 0;

        for (const dot of this.dots) {
            const idx = dot.y * this.width + dot.x;
            const owner = this.dotOwner.get(this._key(dot));

            if (owner === enemy && inside[idx] === 1) {
                this.removedDots.push({
                    x: dot.x,
                    y: dot.y,
                    color: owner   // red или blue
                });

                this.connections.delete(this._key(dot));
                this.dotOwner.delete(this._key(dot));
                removed++;
                continue;
            }
            newDots.push(dot);
        }

И понятное название метода, и нормальные переменные

О, а это идея, для начинающих может быть будет полезно, но это прям затратно по ресурсам будет. А то чем он будет думать? Сейчас это все крутиться на самой маленькой VPS)))

Да заготовок, согласен много, но суть была вот прям с 0 написать в браузере то, что было на листочке. И, кстати, совсем поверхностно изучив эти готовые библиотеки, они в основном для игры ГО, а там совсем другая логика

Задача не была сделать своим кодом, код написанный ИИшкой. Задача была, а вообще можно ли сделать что-то рабочее, не зная ЯП, а зная только алгоритм как должно быть. И вроде как оно очень даже может быть. Я думаю чрезе год-два ИИшки научаться более детально дердать контекст по коду. А сейчас, как описал, это прям боль, потому что ИИшка начинает переписывать то, что совсем может не касаться конкретного вопроса и потому его надо все "кормить" актуальным кодом

как и говорил выше это вообще МВПха, багов явно много будет, а так хотелось бы более развернутое описание бага. В статье не сказал, но в игре есть ограничения. На кол-во комнат одновременно, на игру -15 минут, на ожидание подключения после выхода одного из игроков (ждет 30сек и обновляет комнату, но победитель получает 10 очков свои). И сейчас сразу видно еще пару багов, которые записаны в блокнотике и ждут своего свободного времени на исправление.

Кстати комнаты ждут своих игроков явно из-за неосведомленности игроков что надо делать, мало игроков, входят\выходят из комнат, комнаты пустые - игра не может состояться.

Информация

В рейтинге
810-й
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Веб-разработчик
Старший
PHP
ООП
Laravel
Docker
Linux
Высоконагруженные системы
Проектирование архитектуры приложений
Golang
CI/CD
MySQL