Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Смерть от удара на своей территории #321

Open
ud1 opened this issue Aug 4, 2019 · 3 comments
Open

Смерть от удара на своей территории #321

ud1 opened this issue Aug 4, 2019 · 3 comments

Comments

@ud1
Copy link

ud1 commented Aug 4, 2019

Насколько помню, в оригинальном paper.io если игрок находится на своей территории, то смерть ему не грозит (кроме как случая, когда тебя съедают окружением).
Но здесь же, согласно правилам, при столкновении головами умирает тот, у кого шлейф длиннее, или оба, если шлейфы одинаковой длины.
Может возникнуть ситуация, когда шлейфы у обоих игроков равны 0, когда две вражеские территории соприкасаются, первый игрок идет вдоль края своей территории НЕ покидая ее, а перемещаясь из одной своей клетки в другую свою клетку, при этом второй игрок, находясь на краю своей территории уже Покидая ее движется на территорию первого игрока и сталкиваясь с ним, помирают оба.

Предлагаю изменить правила, чтоб первый игрок не умирал, т.е., если два игрока сталкиваются головами, при этом у них у обоих длина шлейфа 0, то если начальная и конечная точка игрока при движении лежат на его территории, то он остается жив, другой игрок, у которого только начальная точка на своей территории, а конечная на территории врага, тот умирает.

@boriszaitsev
Copy link
Contributor

boriszaitsev commented Aug 5, 2019

Я хотел предложить фикс в котором обрабатывать отдельно случай, если если шлейф игрока =0. Его чекать на интерсект только с игроками с такими же нулевыми хвостами.
И там проверять - если игроки идут навстречу друг другу и пересекаются, то оба мрут, в остальных случаях оба выживают.
Как сделать так, чтобы тот который идет по своей территории выживал, а тот который заходит со своей на вражескую, что возможно выглядит чуть правдоподобнее я не представляю. Ну то есть сделать то конечно можно, но надо вводить какие-то костыли - хвост дробной длины или чекать владельца пункт назначения (а он вообще говоря может поменяться), короче сложно, новые баги только кликать.

@boriszaitsev
Copy link
Contributor

Сделал ПР.
#323

@mmamaev
Copy link

mmamaev commented Aug 18, 2019

Наблюдал сегодня описанный случай https://aicups.ru/session/624788/ тик 1249.
Синий бот получил команду up и начал движение вдоль своей территории из (11, 5) в (11, 6).
Зеленый бот, я предполагаю, получил команду left и начал движение из (12, 6) в (11 ,6), покидая свою территорию. Как только боты сдвинулись, они взаимно уничтожились.

Я полагаю, что так быть не должно. Если на тике 1250, то есть, едва покинув центры ячеек (11, 5) и (12 ,6) соответственно, боты считаются уже прибывшими в ячейку (11, 6) и там столкнувшимися, то зеленый бот по прибытию в (11, 6) должен иметь шлейф длиной 1, а синий - длиной 0, соответственно выигрывает синий. Если же на тике 1250 боты еще не прибыли в (11, 6) и, следовательно, зеленый еще не заработал шлейф, то тогда боты и не столкнулись.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants