Я делаю программирование, используя win # cform, который по сути является очень простым языком программирования, который позволяет пользователям вводить команды, например, круг (радиус), прямоугольник (ширина, высота), треугольник (сторона, сторона, сторона),moveTo (x, y) <- для перемещения позиции пера. У меня проблема в том, что программа читает только одну команду за раз, а не принимает все команды и выполняет их как блок. </p>
Я хочу иметь возможность поместить список команд и программузатем выполните этот список, например, moveTo (x, y) circle (radius) <- это нарисует круг на экране с радиусом и везде, где пользователь определил x и y pos. </p>
public void RunProgram()
{
try
{
string[] spilt = cp.UserCMD(textInput).Split('(', ')', ',');
foreach (string cmd in spilt) //spilt string on brackets and comma
{
if (cp.ValidCommand(textInput) == true)
{
if (cp.FunctionCMD(textInput) == "reset")
{
x = 0;
y = 0;
}
else if (cp.FunctionCMD(textInput) == "moveTo")
{
x = Int32.Parse(spilt[1]);
y = Int32.Parse(spilt[2]);
}
}
if (cp.FunctionCMD(textInput) == "circle")
{
radius = Int32.Parse(spilt[1]);
}
if (cp.FunctionCMD(textInput) == "rectangle")
{
width = Int32.Parse(spilt[1]);
height = Int32.Parse(spilt[2]);
}
if (cp.FunctionCMD(textInput) == "triangle")
{
side1 = Int32.Parse(spilt[1]);
side2 = Int32.Parse(spilt[2]);
side3 = Int32.Parse(spilt[3]);
}
}
Graphics g;
g = Graphics.FromImage(drawOutput);
Pen pen = new Pen(Color.Black, 5);
if (cp.ValidCommand(textInput) == true)
{
if (cp.FunctionCMD(textInput) == "circle")
{
circle.drawCircle(radius, pen, g, x, y);
setImage(g);
}
if (cp.FunctionCMD(textInput) == "rectangle")
{
rect.drawRectangle(width, height, pen, g, x, y);
setImage(g);
}
if (cp.FunctionCMD(textInput) == "triangle")
{
tri.drawTriangle(side1, side2, side3, pen, g);
setImage(g);
}
}
else
{
MessageBox.Show("You have a syntax error, Please check your command");
}
}
catch (IndexOutOfRangeException e1)
{
MessageBox.Show("You have a syntax error, Please check your parameters \nError: \n" + e1);
}
}
Спасибо