Example #1
0
        private string add(string[] keyWords)
        {
            if (turingMachine == null)
            {
                return("Error: Необходимо сначала инициализировать машину! / add\\");
            }

            string value = string.Empty;

            int[] indices = new int[dimensions];
            for (int i = 0; i < dimensions; ++i)
            {
                indices[i] = 0;
            }

            for (int i = 1; i < keyWords.Length; ++i)
            {
                switch (keyWords[i])
                {
                case "v":
                case "value":
                    if (i + 1 >= keyWords.Length)
                    {
                        return("Error: Не указано значение параметра value! / add\\");
                    }

                    value = keyWords[i + 1];
                    ++i;
                    break;

                case "i":
                case "indices":
                    if (i + 1 >= keyWords.Length)
                    {
                        return("Error: Не указано значение параметра indices! / add\\");
                    }

                    ++i;
                    int indicesCounter = 0;
                    while (i < keyWords.Length && indicesCounter < dimensions && !keyWords[i].Equals("end"))
                    {
                        if (!(int.TryParse(keyWords[i], out indices[indicesCounter]) && indices[indicesCounter] >= 0))
                        {
                            return("Error: Значением параметра index должно быть целое положительное число или 0! / add\\");
                        }

                        ++i;
                        ++indicesCounter;
                    }
                    break;
                }
            }

            if (value.Length > 0)
            {
                string valueString = turingMachine.addCell(indices, value);

                if (valueString.StartsWith("Error"))
                {
                    return(valueString);
                }
                else
                {
                    return("Значение: / " + valueString + " / добавлено на ленту успешно!\\");
                }
            }
            else
            {
                return("Error: Необходимо указать value! / add\\");
            }
        }