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

Выход за границы поля #283

Open
actium opened this issue Jul 23, 2019 · 10 comments
Open

Выход за границы поля #283

actium opened this issue Jul 23, 2019 · 10 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@actium
Copy link

actium commented Jul 23, 2019

x > self.x_cells_count * self.width + round(self.width / 2) or \

Предполагаю, что вместо:
x > self.x_cells_count * self.width + round(self.width / 2)
должно быть либо
x >= self.x_cells_count * self.width + round(self.width / 2)
либо
x >= self.x_cells_count * self.width - round(self.width / 2)

Аналогично для второй координаты.

@spaceorc
Copy link
Contributor

В последнем варианте вроде > должно быть а не >=

x > self.x_cells_count * self.width - round(self.width / 2)

@actium
Copy link
Author

actium commented Jul 23, 2019

Думаю, в любом случае в правилах нужно прописать размер объекта типа "Игрок". Ну, и если речь зашла о размерах, то было бы неплохо раздел "Описание механики" согласовать с наличием конфигурационных параметров.

@Pro100AlexHell
Copy link

Pro100AlexHell commented Jul 24, 2019

Вот тут проверка выхода игрока за границы поля
check_loss(self, player, players):
https://github.com/MailRuChamps/miniaicups/blob/master/paperio/local_runner/game_objects/game.py#L94
на сколько я понял, и там вроде все верно

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

@Pro100AlexHell
Copy link

Pro100AlexHell commented Jul 24, 2019

В последнем варианте вроде > должно быть а не >=

x > self.x_cells_count * self.width - round(self.width / 2)

поддерживаю
930 = размер поля (31 * 30)
930 - 15 = прямо на границе
930 - 14 = уже за пределами границы
930 - 16 = в пределах поля

@actium
Copy link
Author

actium commented Jul 24, 2019

если размер поля = 930 точек, то это точки с координатами от 0 до 929 (включительно), так?

@Pro100AlexHell
Copy link

Pro100AlexHell commented Jul 24, 2019

нет, от 0 до 930
вырожденный случай если бы у нас было поле 30х30 пикселей (не матрица 30х30 с индексацией) и размер квадрата 30 и поле из одного квадрата
то поле именно от 0 до 30, а не от 0 до 29

т.е не нужно индексы путать, когда массив из 31 элемента то есть от 0 до 30 включительно
тут не массив, и -1 не нужен

@SannikovDmitry
Copy link
Contributor

@actium решено?

@actium
Copy link
Author

actium commented Jul 30, 2019

информации о размере игрока в правилах не появилось
однозначно понять, при каких условиях игрок выходит за пределы поля, невозможно
нет, не решено

@SannikovDmitry SannikovDmitry added the help wanted Extra attention is needed label Jul 31, 2019
@xammi
Copy link
Contributor

xammi commented Jul 31, 2019

Добавил пояснение в документацию:
https://github.com/MailRuChamps/miniaicups/blob/fbe6ecdec36152af601dd506c5f124b64c889c98/paperio/README.md#13-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B4%D1%8B

При пересечении границ карты (с учётом размеров игрока);

@actium
Copy link
Author

actium commented Jul 31, 2019

осталось добавить в документацию размеры игрока и определение, в какой момент наступает событие "игрок пересек границу карты"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants