Я хотел сделать небольшую игру, такую как роботизированные войны на Java.Предотвращение бесконечного цикла в java
Идея состоит в том, чтобы расширить мой класс Robot с помощью пользовательских правил, которые вы добавляете к нему.
Однако у меня есть так, что я хочу, чтобы кодеры не делали, как бесконечные петли.
Я знаю, что некоторые компиляторы будут жаловаться, если существует бесконечный цикл, в методе требуется возвращаемое значение. но я не думаю, что все компиляторы вернут ошибку об этом, поэтому я подумал, есть ли способ проверить этот другой способ тоже?
или, может быть, способ сделать какой-то тайм-аут по методу?
Обновление: Оглядываясь назад на этот вопрос я разместил почти 3 с половиной года назад, я больше не делает программирование на Java, однако по-прежнему активно программист, и с годами я понял, как это тяжело для полицейского кода сторонней стороны, если нет цикла обзора. Нет простого способа проверить, является ли код вредоносным (поэтому у нас есть антивирусные программы).
Чтобы сделать то, что я хотел сделать, я сначала должен контролировать всю платформу, которую я разрабатываю, чтобы проверить причины, по которым код ведет себя как есть, задача, которая была бы почти невозможной или слишком потребляя.
вот почему это сделать более надежно, решение, которое я достиг, это использовать язык сценариев, который ограничивает пользователя идеей, которую вы имели в виду.
Хостинг программы на серверах, на которые каждый имеет доступ для добавления кода, - это просто не очень хорошая идея. даже с управлением языками программ как Java и CIL, поскольку платформы не проверяют эти особенности, для этого потребуется слишком много усилий.
Несмотря на то, что есть способ для программы «песочницы» в Java, с помощью Policies и C# есть something similar, он никогда бы не допустить опытного программиста эксплуатировать или сделать что-то, что никогда не предполагалось.
Я надеюсь, что это обновление дает другое предупреждение о том, что они делают, так как я заметил, что эта тема в последнее время много искала.
Составители ничего не знают о времени выполнения. Да, компилятор будет жаловаться на недостижимый код, когда это возможно. –
Вы можете использовать переменную статического счетчика и разбить цикл, проверив значение счетчика. –
статический счетчик требовал бы, чтобы счетчик подсчитывался от sinde плагина, однако что, если третий человек сделал плагин, с идеей саботировать игру – Droa