Я создаю многопользовательскую игру «Морской бой», используя сервер Apache/PHP (да, я знаю, что Node подойдет для этого намного лучше, но я научусь этому позже). В любом случае, я нахожусь на этапе, когда оба игрока загружают свои игровые доски, чтобы начать игру. Хотя мой клиентский JavaScript, очевидно, правильно скомпилирует и проверит доски перед отправкой их на сервер, он все еще уязвим для мошенничества, поэтому сервер также должен дважды проверить. Однако на сервере скорость и эффективность решают все.
На данный момент мой сервер выполняет следующий процесс:
Сервер получает плату в виде многомерного массива в кодировке JSON через запрос AJAX.
$board = json_decode($_REQUEST["board"]);
Сервер проверяет структуру переданных входных данных.
В массиве цифры от нуля до пяти обозначают пустые плитки авианосца, линкора, крейсера, подводной лодки и эсминца соответственно. Я считаю необходимое количество каждого.
Мне нужно обеспечить непрерывность движения кораблей без пробелов.
??????????????????????????
При достаточном объеме работы я мог бы выполнить пятый шаг, но многократно повторять все действия было бы крайне неэффективно. Итак, в заключение, как я могу сделать то, что я разработал, более эффективным и как выполнить последний шаг (5) для проверки загруженной платы?
Я создаю многопользовательскую игру «Морской бой», используя сервер Apache/PHP (да, я знаю, что Node подойдет для этого намного лучше, но я научусь этому позже). В любом случае, я нахожусь на этапе, когда оба игрока загружают свои игровые доски, чтобы начать игру. Хотя мой клиентский JavaScript, очевидно, правильно скомпилирует и проверит доски перед отправкой их на сервер, он все еще уязвим для мошенничества, поэтому сервер также должен дважды проверить. Однако на сервере скорость и эффективность решают все.
На данный момент мой сервер выполняет следующий процесс:
[list] [*]Сервер получает плату в виде многомерного массива в кодировке JSON через запрос AJAX.
$board = json_decode($_REQUEST["board"]);
[*]Сервер проверяет структуру переданных входных данных.
[*]В массиве цифры от нуля до пяти обозначают пустые плитки авианосца, линкора, крейсера, подводной лодки и эсминца соответственно. Я считаю необходимое количество каждого.
[*]Мне нужно обеспечить непрерывность движения кораблей без пробелов.
??????????????????????????
[/list]
При достаточном объеме работы я мог бы выполнить пятый шаг, но многократно повторять все действия было бы крайне неэффективно. Итак, в заключение, как я могу сделать то, что я разработал, более эффективным и как выполнить последний шаг (5) для проверки загруженной платы?