Смысл в том, чтобы игрокам давался случайный слог, например "ре", а игрок должен придумать за ограниченное время слово, если не придумывает - вылетает, если отвечает правильно - ход передаётся следующему игроку.
Проблема в том, что нужно загрузить словарь, как это оформить? Я не думаю, что 50 тыс. слов поместится в код, возможно ли это?
Технически 50 тысяч слов можно запихать в массив (лимит количества переменных 400000, элемент массива считается за отдельную переменную), но есть две проблемы:
1. Лимит операций. В лучшем случае придется как минимум доставать слово из массива, проверять содержит ли оно слог, равняется ли слову игрока и инкрементить индекс массива. Это 4 операции. Лимит операций для Hero и выше - 3200/с (800 на 5 тиков). 3200/4=800 проверок/с. Но цикл может запускать код только 4 раза/с. Для того чтобы достичь такой скорости, нужно будет вынести проверку в функцию (скажем, f1), запускать эту функцию 800/4 = 200 раз в секунду. Вынести 20 запусков функции f1 можно в функцию f2. И 10 раз запускать функцию f2 можно из цикла (на самом деле 10 не выйдет, т.к запуск функции - тоже операция). Скорость проверки одного слова в лучшем случае будет равна: 50000/800=63 секунды.
2. Большие массивы сильно лагают на mineland'е. Даже от пары десятков операций с массивом такой длины начнутся просадки TPS (вплоть до перезагрузки шарда).
Обе проблемы можно решить разбив слова на группы по слогам с помощью скрипта на любом языке программирования. Пусть в группе будет по 10 слов (чем больше - тем лучше, насколько много можно не знаю), все слова группы вместе либо содержат либо не содержат все те возможные слоги, которые будут предлагаться игроку. Группа слов будет записана в одну текстовую переменную с разделителем. Длина массива теперь составляет 5000, проверка будет выглядеть так:
Достать группу из массива, проверить содержится ли в ней слог (если он содержится, то он содержится во всех словах по правилам группировки), проверить содержится ли слово игрока в группе (подразумевается, что перед началом проверки по словарю слово игрока проверено так: слово игрока не является слогом, но содержит его, и что размер слова игрока больше какого-нибудь значения (короткие слова <= этому значению придется убрать и написать об этом в правилах, это нужно для эффективности реализации), иначе игрок сможет написать букву-две после слога и это пройдет за слово или нагрузка по операциям возрастёт т.к после такой проверки по словарю можно разбить слова этой группы по разделителю и проверить уже на полное соответствие (для надёжности) - желательно, чтобы частота запуска такой проверки стремилась к 1 на слово (игрока)), инкрементить индекс массива. Благодаря группировке в группы по 10 слов, количество операций на полную проверку по словарю уменьшится в 10 раз, соответственно время тоже уменьшится в 10 раз, на проверку уйдёт около 7 секунд.
Не знаю будут ли просадки TPS при длине массива в 5000. Размер группы ограничен только максимальными размерами переменной "Текст" и количеством слов и слогов для группировки. Если группа нужного размера не получается, группа меньшего размера также подойдёт, если таких групп не будет много на фоне групп полного размера.