Check out Smess, our featured variant for February, 2025.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Single Comment

Play-test applet for chess variants. Applet you can play your own variant against.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sat, Jan 2, 2021 08:16 AM UTC:

This is generated by an include file that contains the code

  set sqrs explode chr 45 trim elem dec #i #parts;   // split last part at hyphen
  if != 2 count #sqrs:                               // must give 2 squares
print . count= count #sqrs;
print thismove;
    if == resign thismove:
print ok;
      resign;
    elseif == drawn thismove:
print notok;
      drawn;
    endif;
print giveup;
    die "board step does not mention two squares";
  endif;
print survived;


in its ParseMove routine. So for normal move primitives (i.e. containing a hyphen) is directly skips to the 'print survived'. On receiving 'resign' it correctly reaches the 'print ok', and aborts ParseMove, so that it never reaches the die or 'print survived'. But it continues execution of the GAME code at the caller of ParseMove (HandleMove in the Pre-Move code), which eventually leads to the later die when it chokes on 'resign'.