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

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

6,447
260
1,282
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)...

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


Тут формат сообщения кастомный, ещё и сам пример в виде спецсимволов.
 
6,447
260
1,282
В чем проблема поменять мой код?)
 

CumingSoon

Местный стендапер
1,621
12
257
Сообщения в некоторых плагинах, подобных моему, можно гибко изменять прямо в конфиге. Т.е. твоя штука на них просто не затригерится.
Обрати внимание на сообщение из вчерашней темы:


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


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

Ибо там стоит лаунчер, не позволяющий заливать своё
Я делал так: отдельной прогой парсил лог клиента, в котором были все входящие сообщения, находил и решал примеры, ответ выводил в консольку, которая была на соседнем монике. Всё, что мне оставалось - вписать число в чат.
 
Последнее редактирование:
1,102
24
141
отдельной прогой парсил лог клиента, в котором были все входящие сообщения, находил и решал примеры, ответ выводил в консольку, которая была на соседнем монике. Всё, что мне оставалось - вписать число в чат
вполне юзабельно кстати
 

tox1cozZ

aka Agravaine
Модератор
7,755
512
2,477
отдельной прогой парсил лог клиента, в котором были все входящие сообщения,
А лог разве сразу пишет все на диск, а не ждёт пока заполнится буффер и только потом порцию данных выгружает на диск?
 
6,447
260
1,282
не решит 1-1, потому что ты у минуса пробелы учитываешь. Алсо, такое лучше адекватно парсить, иначе сломается на (500 + 0) * 2
Как, если я юзаю парсинг через js интерпретатор? Это такой прикол js?
 
6,447
260
1,282
А вообще, я юзал этот кусок на одном проекте и вроде не возникало проблем. Там были в том числе задания с вычитанием
 

CumingSoon

Местный стендапер
1,621
12
257
Как, если я юзаю парсинг через js интерпретатор? Это такой прикол js?
Я не весь код посмотрел, соре
Тут, в общем-то, просто адекватный поиск выражений стоит сделать. Ну или хотя бы учесть случа 2-2(где минус без пробелов)
 
6,447
260
1,282
В чем смысл? JS ведь все сделает, достаточно только выделить арифметическое выражение из сообщения.
Делать это нужно путем поиска окружающего выражения текста, а не путем поиска самого выражения. Ибо иначе вас спалят просто написал в чат "Тест на читера 1+2+3".
 
904
25
157
Не встречал викторин где были примеры отличные от + или -, всегда решал пример по ходу ввода его ответа (слева направо да). Но вот если примеры сложные, то круто, да.
 

necauqua

когда-то был anti344
Администратор
1,015
7
91
Написать калькулятор на jparsec занимает один экран декларативного кода, какой javascript eval, вы шо, ебобо?)
 
6,447
260
1,282

necauqua

когда-то был anti344
Администратор
1,015
7
91
Окей, плюсы js: занимает одну строку
Минусы js: инъекции, поднятие целого движка js, все те мемные проблемки js с операторами и так далее

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

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