Итоги — Таблица рекордов
Часть раздела Logic & Flow путешествия по Lua на Coddy — урок 9 из 54.
Задание
ЛегкоНапишите функцию updateHighScores, которая принимает таблицу scores и число newScore, и возвращает обновленную таблицу рекордов, содержащую только 5 лучших результатов в порядке убывания.
Добавьте новый результат в таблицу, отсортируйте все результаты от большего к меньшему и оставьте только 5 лучших.
Логика:
- Используйте
table.insert(), чтобы добавить новый результат в таблицу scores - Используйте
table.sort()с пользовательской функцией сравнения для сортировки результатов в порядке убывания (сначала самые высокие) - Если в таблице более 5 результатов, используйте
table.remove(), чтобы удалить результаты, выходящие за пределы топ-5 - Верните обновленную таблицу результатов
Параметры:
scores(table): Таблица в стиле списка, содержащая текущие рекорды в виде чиселnewScore(number): Новый результат для добавления в таблицу
Возвращает: Таблицу, содержащую 5 лучших результатов, отсортированных от большего к меньшему (table)
Попробуйте сами
function updateHighScores(scores, newScore)
-- Напишите здесь код
endВсе уроки раздела Logic & Flow
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов