💡 Инструкция: В каждом вопросе выберите один ответ из пяти. На работу отведено 70 минут. После завершения можно посмотреть правильные ответы, объяснения и результат по каждой теме.
Вопрос 6 из 25
Что нельзя заменить привычкой из другого языка при чтении этого кода? Выберите основное правило раздела «Сущности».
Lua Lua · Сущности · разбор 1 Копировать
local entities={}
entities[17]={position={x=1,y=2},health=100}
local function damage(id,value)
local e=assert(entities[id])
e.health=math.max(0,e.health-value)
end
Строку из раздела «Сущности» нужно читать так: Сущности удобнее хранить с явной схемой компонентов и владельцем состояния, чем в произвольных глобальных таблицах; это упрощает сериализацию, обновление и профилирование.
Строку из раздела «Сущности» нужно читать так: Система событий должна определять порядок, повторный вход и удаление подписчиков во время рассылки; непосредственный обход изменяемого списка обработчиков создаёт редкие пропуски.
Строку из раздела «Сущности» нужно читать так: Игровой сценарий проверяют на повторный запуск, паузу, пропуск кадров и повреждённые данные; успешная демонстрация на одном уровне не доказывает устойчивость жизненного цикла.
Строку из раздела «Сущности» нужно читать так: Горячая перезагрузка не заменяет миграцию состояния: старые замыкания и ссылки продолжают указывать на прежние функции и таблицы, если их не обновить намеренно.
Строку из раздела «Сущности» нужно читать так: Игровой цикл должен отделять фиксированный шаг симуляции от частоты отрисовки и ограничивать объём Lua-работы за кадр; один долгий скрипт способен сорвать весь бюджет кадра.
Вопрос 7 из 25
Какой отказ должен быть воспроизводимым в тесте? Выберите именно проверяемую границу раздела «Сущности».
Lua Lua · Сущности · разбор 2 Копировать
local function reproduce_case()
local entities={}
entities[17]={position={x=1,y=2},health=100}
local function damage(id,value)
local e=assert(entities[id])
e.health=math.max(0,e.health-value)
end
end
reproduce_case()
Граничный тест раздела «Сущности» должен показать: Сущности удобнее хранить с явной схемой компонентов и владельцем состояния, чем в произвольных глобальных таблицах; это упрощает сериализацию, обновление и профилирование.
Граничный тест раздела «Сущности» должен показать: Горячая перезагрузка не заменяет миграцию состояния: старые замыкания и ссылки продолжают указывать на прежние функции и таблицы, если их не обновить намеренно.
Граничный тест раздела «Сущности» должен показать: Система событий должна определять порядок, повторный вход и удаление подписчиков во время рассылки; непосредственный обход изменяемого списка обработчиков создаёт редкие пропуски.
Граничный тест раздела «Сущности» должен показать: Игровой сценарий проверяют на повторный запуск, паузу, пропуск кадров и повреждённые данные; успешная демонстрация на одном уровне не доказывает устойчивость жизненного цикла.
Граничный тест раздела «Сущности» должен показать: Игровой цикл должен отделять фиксированный шаг симуляции от частоты отрисовки и ограничивать объём Lua-работы за кадр; один долгий скрипт способен сорвать весь бюджет кадра.
Вопрос 8 из 25
Что здесь является частью контракта, а не случайностью текущей записи? Речь идёт о центральном правиле раздела «Сущности».
Lua Lua · Сущности · разбор 3 Копировать
do
local entities={}
entities[17]={position={x=1,y=2},health=100}
local function damage(id,value)
local e=assert(entities[id])
e.health=math.max(0,e.health-value)
end
end
Новая реализация раздела «Сущности» обязана соблюдать: Система событий должна определять порядок, повторный вход и удаление подписчиков во время рассылки; непосредственный обход изменяемого списка обработчиков создаёт редкие пропуски.
Новая реализация раздела «Сущности» обязана соблюдать: Игровой цикл должен отделять фиксированный шаг симуляции от частоты отрисовки и ограничивать объём Lua-работы за кадр; один долгий скрипт способен сорвать весь бюджет кадра.
Новая реализация раздела «Сущности» обязана соблюдать: Горячая перезагрузка не заменяет миграцию состояния: старые замыкания и ссылки продолжают указывать на прежние функции и таблицы, если их не обновить намеренно.
Новая реализация раздела «Сущности» обязана соблюдать: Игровой сценарий проверяют на повторный запуск, паузу, пропуск кадров и повреждённые данные; успешная демонстрация на одном уровне не доказывает устойчивость жизненного цикла.
Новая реализация раздела «Сущности» обязана соблюдать: Сущности удобнее хранить с явной схемой компонентов и владельцем состояния, чем в произвольных глобальных таблицах; это упрощает сериализацию, обновление и профилирование.
Вопрос 22 из 25
Что здесь важнее проверить, чем само отсутствие ошибки? Выберите именно проверяемую границу раздела «Проверка допущений».
Lua Lua · Проверка допущений · разбор 2 Копировать
local function reproduce_case()
local function run_level(level)
assert(type(level.spawn)=="table")
reset_world()
for _,item in ipairs(level.spawn) do spawn(item) end
return simulate_frames(600)
end
end
reproduce_case()
Второй запуск раздела «Проверка допущений» нужен, чтобы увидеть: Сущности удобнее хранить с явной схемой компонентов и владельцем состояния, чем в произвольных глобальных таблицах; это упрощает сериализацию, обновление и профилирование.
Второй запуск раздела «Проверка допущений» нужен, чтобы увидеть: Система событий должна определять порядок, повторный вход и удаление подписчиков во время рассылки; непосредственный обход изменяемого списка обработчиков создаёт редкие пропуски.
Второй запуск раздела «Проверка допущений» нужен, чтобы увидеть: Горячая перезагрузка не заменяет миграцию состояния: старые замыкания и ссылки продолжают указывать на прежние функции и таблицы, если их не обновить намеренно.
Второй запуск раздела «Проверка допущений» нужен, чтобы увидеть: Игровой цикл должен отделять фиксированный шаг симуляции от частоты отрисовки и ограничивать объём Lua-работы за кадр; один долгий скрипт способен сорвать весь бюджет кадра.
Второй запуск раздела «Проверка допущений» нужен, чтобы увидеть: Игровой сценарий проверяют на повторный запуск, паузу, пропуск кадров и повреждённые данные; успешная демонстрация на одном уровне не доказывает устойчивость жизненного цикла.