git @ Cat's Eye Technologies Gemooy / 0.1-2017.0522 demo / gemooy.html
0.1-2017.0522

Tree @0.1-2017.0522 (Download .tar.gz)

gemooy.html @0.1-2017.0522raw · history · blame

<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <title>Gemooy</title>
  <style>
#canvas { border: 1px solid blue; }
#canvas_viewport {
    width: 420px; height: 420px; overflow: scroll; border: 1px solid black;
}
#info { float: right; }
#program {
  display: none;
}
#load {
  display: none;
}
.example_program {
    display: none;
}
  </style>
</head>
<body>

<p id="info">
Gemooy on:
<a href="http://catseye.tc/node/Gemooy.html">catseye.tc</a> |
<a href="https://github.com/catseye/Gemooy">github</a> |
<a href="http://esolangs.org/wiki/Gemooy">esolangs wiki</a>
</p>

<h1>Gemooy</h1>

<div id="control_panel"></div>

<div>
  example source: <select id="select_source"></select>
</div>

<div id="canvas_viewport">
  <canvas id="canvas" width="400" height="400">
    Your browser doesn't support displaying an HTML5 canvas.
  </canvas>
</div>

<textarea id="editor" rows="25" cols="40"></textarea>

<div id="grow-indefinitely" class="example_program"
> @@ %
@  $
@   #
     #
      @# @
          @
          @
     @   @
</div>


<div id="toggle-column" class="example_program"
>%   @@   @@
#  @  $    @
       @
#      #
#
       @
#     # #
#    #
    @     @
    @     @@
#  @ @    @
@   @   @
</div>


<div id="turn-around" class="example_program"
>%           @


 @@      @@
@       @  @
@          @
 @   $    @
      #
       #
        @  # @#  @
              @   @
              @   #
           @ @

            @@             @@
           @              @  @
           @                 @
            @               @
                 #
                  @  #@#    @
                 #     @     @ 
                #         @  @
               @           @@
               @       @
                @     @
</div>

</body>
<script src="../src/yoob/controller.js"></script>
<script src="../src/yoob/playfield.js"></script>
<script src="../src/yoob/playfield-canvas-view.js"></script>
<script src="../src/yoob/cursor.js"></script>
<script src="../src/yoob/preset-manager.js"></script>
<script src="../src/yoob/source-manager.js"></script>
<script src="../src/gemooy.js"></script>
<script>
  var controlPanel = document.getElementById('control_panel');
  var display = document.getElementById('canvas_viewport');

  var v = new yoob.PlayfieldCanvasView;
  v.init({
      canvas: document.getElementById('canvas')
  });
  v.setCellDimensions(undefined, 20);

  var c = (new GemooyController()).init({
      panelContainer: controlPanel,
      view: v
  });

  var sourceManager = (new yoob.SourceManager()).init({
      panelContainer: controlPanel,
      editor: document.getElementById('editor'),
      hideDuringEdit: [display],
      disableDuringEdit: [c.panel],
      storageKey: 'gemooy.js',
      onDone: function() {
          c.performReset(this.getEditorText());
      }
  });

  var presetManager = (new yoob.PresetManager()).init({
    selectElem: document.getElementById('select_source'),
    setPreset: function(id) {
      sourceManager.loadSourceFromHTML(document.getElementById(id).innerHTML);
    }
  }).populateFromClass('example_program').select('toggle-column');
</script>