? users online
  • Logout
    • Open hangout
    • Open chat for current file
<div class="notebook">

<div class="nb-cell html">
<h2>Robot Arm</h2>
<h3> Currently offline </h3>
<p> Please wait for the webcam to load. This video has a 30 second delay. It also takes sometime to send commands so be patient </p>


<p> is there someone controlling my robot? if so send me a mail! sam.neaves@gmail.com</p>
<iframe width="427" height="240" src="https://www.youtube.com/embed/-5QowYYG1PM" frameborder="0" allowfullscreen=""></iframe>



<!--<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Noaa-walrus22.jpg/330px-Noaa-walrus22.jpg" alt="Smiley face" height="42" width="42"> 
<div class="panel panel-default">
  <div class="panel-body">
    <div class="form-group">
      <label>Sentence</label>
      <div class="input-group">
        <div class="input-group-btn">
          <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Example
            <span class="caret"></span></button>
          <ul class="dropdown-menu">
          </ul>
        </div>
        <input class="form-control">
        <div class="input-group-btn">
          <button type="button" class="btn btn-primary">Parse</button>
        </div>
      </div>
    </div>
  </div>
</div>
-->
<script>
  // Load examples from the predicate examples/1.  notebook.swish() is a wrapper
  // around new Pengine() that fetches the sources using the same algorithm as
  // a query cell and set the `application` to `swish`.
  // notebook.$() is a shorthand for notebook.cell().find(), evaluating to a
  // jQuery object that matches the objects from the current cell.
  function loadExamples() {
    var seen = 0;
    notebook.$(".dropdown-menu").html("");
    notebook.swish({ ask: "example(Ex)",
                     ondata: function(data) {
                     notebook.$(".dropdown-menu").append('<li><a>'+data.Ex+'</li>');
                     if ( seen++ == 0 )
                       notebook.$("input").val(data.Ex);
                    }
                   });
  }
  // Load the examples on page load as well as if the user clicks the
  // dropdown menu, so changes are reflected.
  loadExamples();
  notebook.$(".dropdown-toggle").on("click", loadExamples);

  // Pass selected examples to the input field.
  notebook.$(".dropdown-menu").on("click", "li", function(ev) {
    notebook.$("input").val($(this).text());
  });

  // If the "Parse" button is clicked, run the query named "parse"
  // binding Sentence to the input string.  The function
  // notebook.run() takes the name of a query and an object
  // holding bindings.  This is translated to run the query
  // Sentence = (String), (parse(Sentence, Tree)).
  notebook.$(".btn-primary").on("click", function() {
    notebook.run("parse", {Sentence: notebook.$("input").val()});
  });
</script>
</div>

<div class="nb-cell program">
:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).
</div>

<div class="nb-cell query">
plans(P),plans_planexe(P, arm_up(_)).
</div>

<div class="nb-cell program">
:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).:- use_module(library(pengines)).

main :-
        pengine_create([
                        server('http://samneaves.ddns.net:6356'),
                         src_text("left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_).
                                   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_).
                                   test:- arm_up(_).
                                   detect(X):- color(X).
                                   action(X):-X=[red],centre_left.
                                   action(X):-X=[blue],centre_right.
                                   action(X):-writeln(X).
                                   plan1(X):- right_centre,color(X),action(X).")
                       ]),
        pengine_event_loop(handle, []).

handle(create(ID, _)) :-
        pengine_ask(ID, plan1(_), []).
handle(success(_, [plan1(_)], false)) :-
        %writeln(X),
        writeln(end).
handle(success(ID, [plan1(_X)], true)) :-
        %writeln(X),
        pengine_next(ID, []).


plans(X):-
       X =[(   left_right :- face_left(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_left :- face_right(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_left :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_left(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   centre_right :- centre(_),arm_down(_),close_claw(_),arm_up(_),face_right(_),arm_down(_),open_claw(_),arm_up(_),centre(_)),
           (   right_centre :- face_right(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_)),
           (   left_centre :- face_left(_),arm_down(_),close_claw(_),arm_up(_),centre(_),arm_down(_),open_claw(_),arm_up(_))
          ].
plans_planexe(Plans,PlanExe):- pengine_rpc('http://samneaves.ddns.net:6356', PlanExe,[src_list(Plans)]).
</div>

</div>