Иконка ресурса

Бот для арифметической викторины в чате

7,166
329
1,544
hohserg1 добавил(а) новый ресурс:

Бот для арифметической викторины в чате - Простой кусок кода, который решает за вас викторины в чате на сервере

Кусок мода, автоматически пишет в чат ответы на арифметическую викторину
Scala:
package hohserg.math

import cpw.mods.fml.common.eventhandler.SubscribeEvent
import cpw.mods.fml.common.gameevent.TickEvent
import javax.script.ScriptEngineManager
import net.minecraft.client.Minecraft
import net.minecraftforge.client.event.ClientChatReceivedEvent

/**
*    @author hohserg
*/

class ChatHandler {

  def getExpr(text: String): Option[String] = {
    Some(text)...

Узнать больше об этом ресурсе...
 
.filter(_.startsWith("[ChatGame] Задача: "))
Сообщения в некоторых плагинах, подобных моему, можно гибко изменять прямо в конфиге. Т.е. твоя штука на них просто не затригерится.
Обрати внимание на сообщение из вчерашней темы:
1588589789493-png.8619


Тут формат сообщения кастомный, ещё и сам пример в виде спецсимволов.
 
В чем проблема поменять мой код?)
 
Сообщения в некоторых плагинах, подобных моему, можно гибко изменять прямо в конфиге. Т.е. твоя штука на них просто не затригерится.
Обрати внимание на сообщение из вчерашней темы:
1588589789493-png.8619


Тут формат сообщения кастомный, ещё и сам пример в виде спецсимволов.
Можно вытаскивать сообщения без форматирования. Ну, насколько я знаю.
@hohserg1 твоя штука не решит 1-1, потому что ты у минуса пробелы учитываешь. Алсо, такое лучше адекватно парсить, иначе сломается на (500 + 0) * 2
 
Такой код не поможет на крупных серверах. Ибо там стоит лаунчер, не позволяющий заливать своё(исключая dll иньекцию и другие баги лаунчеров.)
Лучше предоставь с лога лаунчера кусок этого текста?
 
В чем проблема поменять мой код?)
С учётом того, что он на эльфийском, действительно
придется почти все переписывать


Можно вытаскивать сообщения без форматирования.
@hohserg1 это и делает, но оно не заменит цифры и знаки арифметических операций из спецсимволов на обычные.
норм количество сообщений у тебя

Ибо там стоит лаунчер, не позволяющий заливать своё
Я делал так: отдельной прогой парсил лог клиента, в котором были все входящие сообщения, находил и решал примеры, ответ выводил в консольку, которая была на соседнем монике. Всё, что мне оставалось - вписать число в чат.
 
Последнее редактирование:
отдельной прогой парсил лог клиента, в котором были все входящие сообщения, находил и решал примеры, ответ выводил в консольку, которая была на соседнем монике. Всё, что мне оставалось - вписать число в чат
вполне юзабельно кстати
 
отдельной прогой парсил лог клиента, в котором были все входящие сообщения,
А лог разве сразу пишет все на диск, а не ждёт пока заполнится буффер и только потом порцию данных выгружает на диск?
 
не решит 1-1, потому что ты у минуса пробелы учитываешь. Алсо, такое лучше адекватно парсить, иначе сломается на (500 + 0) * 2
Как, если я юзаю парсинг через js интерпретатор? Это такой прикол js?
 
А вообще, я юзал этот кусок на одном проекте и вроде не возникало проблем. Там были в том числе задания с вычитанием
 
Как, если я юзаю парсинг через js интерпретатор? Это такой прикол js?
Я не весь код посмотрел, соре
Тут, в общем-то, просто адекватный поиск выражений стоит сделать. Ну или хотя бы учесть случа 2-2(где минус без пробелов)
 
В чем смысл? JS ведь все сделает, достаточно только выделить арифметическое выражение из сообщения.
Делать это нужно путем поиска окружающего выражения текста, а не путем поиска самого выражения. Ибо иначе вас спалят просто написал в чат "Тест на читера 1+2+3".
 
Не встречал викторин где были примеры отличные от + или -, всегда решал пример по ходу ввода его ответа (слева направо да). Но вот если примеры сложные, то круто, да.
 
Написать калькулятор на jparsec занимает один экран декларативного кода, какой javascript eval, вы шо, ебобо?)
 
Окей, плюсы js: занимает одну строку
Минусы js: инъекции, поднятие целого движка js, все те мемные проблемки js с операторами и так далее

Минусы своего декларативного парсера: занимает аж экран кода, и то это у меня тогда там ещё AST было, если тупо при парсинге сразу считать то это строчек 10-15.
Плюсы своего декларативного парсера: чёткий и ясный синтаксис, который ты сам описал, не больше, не меньше, намного-намного быстрее, банально правильнее, и уж точно никаких странностей js или инъекций, кек.

И ок, если тут в твоём случае надо просто по-быстрому грязно посчитать экспрешн, не парясь, то можно и так, но говорить при этом "выбор очевиден" - ну ты и людишка после этого конечно.
 
Назад
Сверху