コード例 #1
0
ファイル: Form1.cs プロジェクト: MeesCode/Labyrinth-Script
 private void Run_Click(object sender, EventArgs e)
 {
     output.Text     = string.Empty;
     output.ReadOnly = true;
     m.reset();
     m.getCommands().setCommand(m.turnIntoArray(input.Text));
     m.run();
 }
コード例 #2
0
        public void execute(char command)
        {
            switch (command)
            {
            case '>':
                m.getData().increaseX();
                break;

            case '<':
                m.getData().decreaseX();
                break;

            case '^':
                if (arithmetic_modifier)
                {
                    m.getData().setData((long)Math.Pow(m.getData().getData(), m.getData().getGlobal()));
                    arithmetic_modifier = false;
                }
                else
                {
                    m.getData().decreaseY();
                }
                break;

            case 'v':
                m.getData().increaseY();
                break;

            case '+':
                if (arithmetic_modifier)
                {
                    m.getData().setData(m.getData().getData() + m.getData().getGlobal());
                    arithmetic_modifier = false;
                }
                else
                {
                    m.getData().setData(m.getData().getData() + 1);
                }
                break;

            case '-':
                if (arithmetic_modifier)
                {
                    m.getData().setData(m.getData().getData() - m.getData().getGlobal());
                    arithmetic_modifier = false;
                }
                else
                {
                    m.getData().setData(m.getData().getData() - 1);
                }
                break;

            case '[':
                if (m.getData().getData() == 0)
                {
                    m.getCommands().openLoop();
                }
                break;

            case ']':
                if (m.getData().getData() != 0)
                {
                    m.getCommands().closeLoop();
                }
                break;

            case '.':
                m.getForm().toOutput(((char)m.getData().getData()).ToString());
                break;

            case ':':
                m.getForm().toOutput(m.getData().getData().ToString());
                break;

            case '\\':
                m.getForm().toOutput("\r\n");
                break;

            case ',':
                if (input == string.Empty)
                {
                    m.getForm().getInput();
                    m.setPause(true);
                }
                else
                {
                    m.getData().setData(input[0]);
                    input = input.Substring(1);
                }
                break;

            case '#':
                m.getData().setGlobal(m.getData().getData());
                break;

            case '@':
                m.getData().setData(m.getData().getGlobal());
                break;

            case 'l':
                m.getCommands().turnLeft();
                break;

            case 'r':
                m.getCommands().turnRight();
                break;

            case '?':
                if (m.getData().getData() == 0)
                {
                    m.getCommands().turnRight();
                }
                break;

            case '*':
                if (arithmetic_modifier)
                {
                    m.getData().setData(m.getData().getData() * m.getData().getGlobal());
                    arithmetic_modifier = false;
                }
                else
                {
                    arithmetic_modifier = true;
                }
                break;

            case '%':
                if (arithmetic_modifier)
                {
                    m.getData().setData(m.getData().getData() % m.getData().getGlobal());
                    arithmetic_modifier = false;
                }
                break;

            case '~':
                m.abort("");
                break;

            default:
                break;
            }
        }