chiark / gitweb /
2 cubes at bot
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Mar 2019 15:59:38 +0000 (15:59 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Mar 2019 15:59:38 +0000 (15:59 +0000)
generate-board

index 5cf4580d3e7a21db27ecb3af5479a0cef17637c9..465a7ed6bd47d9f56a87aabc72e547259d0b363e 100755 (executable)
@@ -567,9 +567,10 @@ sub sea_track(){
   my $dx = $token_sz * 1.25;
   my $linecolour = darkerpscolour('cube', 0.25);
   my @pos;
-  for my $i (0..$#$track) {
-    $pos[$i] = mkvec(0, ($i - 0.5 * @$track) * $dy);
+  for my $i (-1..$#$track) {
+    $pos[$i+1] = mkvec(0, ($i - 0.5 * @$track) * $dy);
   }
+  my $pos_ = shift @pos;
   my $prepline = "$linecolour $hs_lw setlinewidth newpath";
   o("  $prepline\n");
   o("    ",psvec($pos[0])," moveto ",psvec($pos[-1])," lineto stroke\n");
@@ -578,11 +579,11 @@ sub sea_track(){
                 pscolour($c{Colours}{cube}),
                 $linecolour);
   }
-  for my $i (0..$#pos-1) {
-    my $differs = $track->[$i] != $track->[$i+1];
+  for my $i (-1..$#pos-1) {
+    my $differs = $i >=0 && $track->[$i] != $track->[$i+1];
     o("  $prepline\n");
     o("  gsave ",
-      psvec($pos[$i] + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
+      psvec(($i >=0 ? $pos[$i] : $pos_) + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
     if ($i >= 0 &&
        ($i == 0 ||
         $track->[$i] != $track->[$i-1])) {
@@ -601,7 +602,7 @@ sub sea_track(){
       o("      12 -22 moveto ($track->[$i]) show");
       o("    grestore\n");
     }
-    if ($differs || $track->[$i]==2 && $track->[$i+2]!=2) {
+    if ($differs || $i==-1) {
       if ($differs) {
        o("  0 0 moveto",
          " ",psvec(mkvec( $dx + $cube_sz, 0 )),