Commits

Anonymous committed 2189764

Initial import of Circute version 1.0 revision 2007.0503 sources.

Comments (0)

Files changed (11)

+                 =
+                 =
+   #######==     =     =========
+   #       =     =     =       =
+ ==N==     =   ==N==   =     ==N==
+ =   =     =   =   =   =     =   =
+ =====     =   =====   =     =====
+   =       =     =     =       =
+   ==============N==============
+
+   =========
+   =       =
+ ==N==     =
+ =   =     =
+ =====     =
+   =       =
+   =========
+  ####
+  #  #
+ =N###
+ =   #
+ =  ###
+ =  # #
+ =  #N#
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =   =
+ =
+ ===============================================================#
+                  =
+                  =
+   #######==   ===N===   =========
+   #       =   =     =   =       =
+ ==N==     = ==N== ==N== =     ==N==
+ =   =     = =   = =   = =     =   =
+ =====     = ===== ===== =     =====
+   =       =   =     =   =       =
+   =============     =============
+   =========
+   =       =
+ ==N==     =
+ =   =     =
+ =====     =
+   =       =
+   =========
+ ============================================================================
+ =
+=N#
+==
+
+  #      #
+  #      #
+  #      #
+  #####  #####
+  #   #  #   #
+ =N## # =N## #
+ =  # # =  # #
+ = =N## = =N##
+ = =    = =
+ = =    = =
+ = =    = =
+ = = #  = =
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # = =  = #
+ # ====== #
+
+
+   ==========
+   =   =    =
+  #N# ===   =
+  # # = =   =
+  ### =N=   =
+   #   #   #N#
+   #####   # #
+           ###
+            #
+           =N=
+           = =
+           === ==#
+            =  =
+            ====
+
+
+                  ==========================
+                  =                        =
+        ====   ###N###   ====              =
+        =  =   #     #   =  =              =
+       =N= =  =N=   =N=  = =N=             =
+       = = =  = =   = =  = = =       ##N====
+       === =  ===   ===  = ===       # =
+        =  =   =     =   =  =        # =======================
+        ========     ========        #
+               =     =               #
+               =     =               #
+               =     =               #
+               =     =               #
+               =     =               #
+               =     =               #
+               ===N===               #
+                  #                  #
+                  #                  #
+                  ####################
+
+
+                  ==========================
+                  =                        =
+        ====   ###N###   ====              =
+        =  =   #     #   =  =              =
+       =N= =  =N=   =N=  = =N=             =
+       = = =  = =   = =  = = =       ##N====
+       === =  ===   ===  = ===       # =
+        =  =   =     =   =  =        # =======================
+        ====   =     =   ====        #
+           =   =     =   =           #
+          ===  =     =  ===          #
+          = =  =     =  = =          #
+          ===  =     =  =N=          #
+           =   =     =   =           #
+           =====     =====           #
+               ===N===               #
+                  #                  #
+                  #                  #
+                  ####################

script/circute.pl

+#!/usr/bin/perl
+# eg/circute/script/circute.pl - automatically generated from eg/circute/src/circute.alp by:
+# alpaca.pl v0.93
+# http://catseye.webhop.net/projects/alpaca/
+######################################################
+
+use Alpaca qw(true false guess
+	      adjacent_state adjacent_class
+	      load_playfield display_playfield process_playfield);
+
+sub SpaceStateRules {
+  return 'Space'
+ };
+
+sub NANDStateRules {
+  return 'NAND'
+ };
+
+sub WireStateRules {
+  return 'Spark' if ($Playfield->[$x-1][$y] eq 'Spark' or $Playfield->[$x+1][$y] eq 'Spark' or $Playfield->[$x][$y-1] eq 'Spark' or $Playfield->[$x][$y+1] eq 'Spark' or ($Playfield->[$x][$y+1] eq 'NAND' and ($Playfield->[$x-1][$y+1] eq 'Wire' or $Playfield->[$x+1][$y+1] eq 'Wire')) or ($Playfield->[$x][$y-1] eq 'NAND' and ($Playfield->[$x-1][$y-1] eq 'Wire' or $Playfield->[$x+1][$y-1] eq 'Wire')));
+  return 'Wire'
+ };
+
+sub SparkStateRules {
+  return 'Tail' if ($Playfield->[$x-1][$y] eq 'Tail' or $Playfield->[$x+1][$y] eq 'Tail' or $Playfield->[$x][$y-1] eq 'Tail' or $Playfield->[$x][$y+1] eq 'Tail' or ($Playfield->[$x][$y+1] eq 'NAND' and $Playfield->[$x-1][$y+1] eq 'Spark' and $Playfield->[$x+1][$y+1] eq 'Spark') or ($Playfield->[$x][$y-1] eq 'NAND' and $Playfield->[$x-1][$y-1] eq 'Spark' and $Playfield->[$x+1][$y-1] eq 'Spark'));
+  return 'Spark'
+ };
+
+sub TailStateRules {
+  return 'Wire' if (1);
+  return 'Tail'
+ };
+
+$Appearance = {
+  'NAND' => 'N',
+  'Space' => ' ',
+  'Spark' => '#',
+  'Tail' => '-',
+  'Wire' => '=',
+
+};
+
+$InputCodec = {
+  'N' => 'NAND',
+  ' ' => 'Space',
+  '#' => 'Spark',
+  '-' => 'Tail',
+  '=' => 'Wire',
+
+};
+
+$StateRule = {
+  'NAND' => \&main::NANDStateRules,
+  'Space' => \&main::SpaceStateRules,
+  'Spark' => \&main::SparkStateRules,
+  'Tail' => \&main::TailStateRules,
+  'Wire' => \&main::WireStateRules,
+
+};
+
+load_playfield($ARGV[0]);
+
+display_playfield();
+
+while (!$done)
+{
+  process_playfield();
+  display_playfield();
+}
+
+exit(0);
+
+### END ###
+/*
+ * The Circute cellular automaton, expressed in ALPACA.
+ * Circa summer 2005, Chris Pressey.
+ * BSD License added May 3 2007
+ */
+
+/*
+ * Copyright (c)2007 Chris Pressey, Cat's Eye Technologies.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notices, this list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notices, this list of conditions, and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *   3. Neither the names of the copyright holders nor the names of their
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission. 
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+state Space " ";
+state NAND  "N";
+state Wire  "="
+    to Spark when
+        < Spark or > Spark or ^ Spark or v Spark or
+	(v NAND and (v< Wire or v> Wire)) or
+	(^ NAND and (^< Wire or ^> Wire));
+state Spark "#"
+    to Tail when
+        < Tail or > Tail or ^ Tail or v Tail or
+	(v NAND and v< Spark and v> Spark) or
+	(^ NAND and ^< Spark and ^> Spark);
+state Tail  "-"
+    to Wire.