Beispiel #1
0
        public AI(string brain)
        {
            brainString = brain;
            this.brain  = new LogicTree(brain);

            /**     Tools and Abilities:
             * PriorityQueue
             * Active Element
             *      Questions:
             * G/g Active Element >. Queue Front
             * L/l Active Element <. Queue Front
             * V/v Active Element is valid input location
             *      Actions:
             * Q Add Active Element to Queue
             * P Add Active Element to Priority Queue
             * N Get the next priority queue
             * W Active Element = length of input
             * D Dequeue into Active Element
             * + +1 to Active Element
             * - -1 to Active Element
             * O print Active Element
             * I get the Active Element'th item from the input, give to Active Element
             * F End/Submit
             * */

            decode['G'] = "if (active > current.peek()) {";
            decode['g'] = "}";
            decode['L'] = "if (active < current.peek()) {";
            decode['l'] = "}";
            decode['V'] = "if (active >= 0 && active < input.length) {";
            decode['v'] = "}";
            decode['Q'] = "current.enqueue(active);";
            decode['P'] = "current.priorityEnqueue(active);";
            decode['N'] = "current = nextQueue();";
            decode['D'] = "active = current.dequeue();";
            decode['A'] = "active += current.dequeue();";
            decode['+'] = "active++;";
            decode['-'] = "active--;";
            decode['O'] = "print(active)";
            decode['I'] = "active = input[active];";
            decode['F'] = "return;";
        }
Beispiel #2
0
 public AIEnumerator(LogicTree brain, int[] input)
 {
     state      = new State();
     this.brain = brain;
     this.input = input;
 }