Здравствуйте. Делаю плагин для JB мода на решение примера. Суть заключается в том, что плагин сам решает уравнение, написанное Саймоном и выделяет первого зека, ответившего правильно.
Код
#include <sourcemod>
public OnPluginStart()
{
AddCommandListener(Urav, "say");
}
public Action:Urav(client, const String:Command[], argc)
{
decl String:text[192];
decl String:buf[6][10];
GetCmdArgString(text, sizeof(text) - 1 );
StripQuotes(text);
TrimString(text);
new String:str2[192];
str2=text;
int ZeroExp;
new String:Decim[]={"+","-","*","/"};
for (new i=0; i<strlen(Decim);i++)
{
ZeroExp = ZeroExp + ExplodeString(text,Decim[i],buf,6,10);
TrimString(buf[i]);
}
for (new i=0; i<ZeroExp;i++)
{
new x = StrContains(str2,text[i],false);
x = x+strlen(buf[i])+1;
new Znak = str2[x];
}
return Plugin_Handled;
}
Данный код пока что не окончательный. Он делит уравнение по знакам на массив чисел для дальнейшей обработки. Переменная Znak определяет знак (умножить, делить, сложить, вычесть). Дальше я уже не знаю как лучше сделать. В плане лишь найти знак умножить или делить, потом сложить, вычесть (по приоритету), а далее найти 2 числа, стоящих между знаком и провести вычисление. Вот дальше я уже и запутался. Записывать ли полученный результат в новый массив для дальнейших вычислений или как?