Exemple #1
0
 public void SetText(int x, int y, string text)
 {
     for (int i = 0; i < text.Length; i++)
     {
         this[x + i, y] = BCHelper.Chr(text[i]);
     }
 }
Exemple #2
0
        public static CodePiece ParseFromLine(string l, bool interpretSpaceAsWalkway = false, bool interpretAtAsNOP = false)
        {
            CodePiece p = new CodePiece();

            for (int i = 0; i < l.Length; i++)
            {
                char c = l[i];

                BefungeCommand cmd;

                if (c == ' ')
                {
                    if (interpretSpaceAsWalkway)
                    {
                        cmd = BCHelper.Walkway;
                    }
                    else
                    {
                        throw new InternalCodeGenException();                         // Space is undefinied: NOP <> Walkway
                    }
                }
                else if (c == '@')
                {
                    if (interpretAtAsNOP)
                    {
                        cmd = BCHelper.Unused;
                    }
                    else
                    {
                        cmd = BCHelper.FindCommand(c);
                    }
                }
                else
                {
                    cmd = BCHelper.FindCommand(c);
                }

                p[i, 0] = cmd;
            }

            return(p);
        }
Exemple #3
0
        public static BefungeCommand FindCommand(char c)
        {
            switch (c)
            {
            case ' ':
                return(BCHelper.Walkway);

            case '+':
                return(BCHelper.Add);

            case '-':
                return(BCHelper.Sub);

            case '*':
                return(BCHelper.Mult);

            case '/':
                return(BCHelper.Div);

            case '%':
                return(BCHelper.Modulo);

            case '!':
                return(BCHelper.Not);

            case '`':
                return(BCHelper.GreaterThan);

            case '>':
                return(BCHelper.PCRight);

            case '<':
                return(BCHelper.PCLeft);

            case '^':
                return(BCHelper.PCUp);

            case 'v':
                return(BCHelper.PCDown);

            case '?':
                return(BCHelper.PCRandom);

            case '_':
                return(BCHelper.IfHorizontal);

            case '|':
                return(BCHelper.IfVertical);

            case '"':
                return(BCHelper.Stringmode);

            case ':':
                return(BCHelper.StackDup);

            case '\\':
                return(BCHelper.StackSwap);

            case '$':
                return(BCHelper.StackPop);

            case '.':
                return(BCHelper.OutInt);

            case ',':
                return(BCHelper.OutASCII);

            case '#':
                return(BCHelper.PCJump);

            case 'p':
                return(BCHelper.ReflectSet);

            case 'g':
                return(BCHelper.ReflectGet);

            case '&':
                return(BCHelper.InInt);

            case '~':
                return(BCHelper.InASCII);

            case '@':
                return(BCHelper.Stop);

            case '0':
                return(BCHelper.Digit0);

            case '1':
                return(BCHelper.Digit1);

            case '2':
                return(BCHelper.Digit2);

            case '3':
                return(BCHelper.Digit3);

            case '4':
                return(BCHelper.Digit4);

            case '5':
                return(BCHelper.Digit5);

            case '6':
                return(BCHelper.Digit6);

            case '7':
                return(BCHelper.Digit7);

            case '8':
                return(BCHelper.Digit8);

            case '9':
                return(BCHelper.Digit9);

            default:
                return(BCHelper.Chr(c));
            }
        }