Comments/Ratings for a Single Item
In line with what I was talking about earlier, I've begun work on a new include file called fairychess1. It is designed to work with the Abstract1 and Alfaerie1 piece sets, which include images of the same pieces. I noticed that these sets included the Vao without the Cannon, which seems pointless. I don't want to break old games, but I might consider replacing the Vao in these sets with some other piece. I still have to adapt copies of the Pawn code for Berolina Pawns, but the others were easy enough to do.
@Fergus: I definitely agree that for having sufficient generality it is necessary to be able to resort to some Turing-complete programming language. But a quite large fraction of CVs would not do anything that is not standard (in the sense that hundreds of other CVs would not do exactly the same). If exposing those who want to create presets to the code for such standard tasks discourages them, it would be better not to do that. And it would not be that difficult to achieve that.
One solution could be to reserve the code edits in the preset Edit form only for enforcing / implementing non-standard rules (and perhaps show them only on request, after ticking a checkbox that you want them). And have the code for the very common tasks, such as forbidding capture of own pieces, testing for check / stalemate / checkmate, 50-move draw, repetition draw be added automatically when the user requests this through ticking a checkbox, (e.g. "can expose royal to capture") selecting from a drop-down menu (e.g. "stalemating the opponent wins / draws / loses / is ignored") or typing a number in an otherwise empty text entry (e.g. declare draw when the same position is repeated .... times"). Untouched squares can be remembered for the entire board as a standard action of the basic system; this never hurts, and castling or special rules that require virginity could use them or ignore them as they want.
Most of the time the user would simply select the rules he wants from the combo-boxes, and never have to see the code this results in. The initial settings of these controls on creation of an entirely new preset could be those of normal Chess, so that in most cases the user would not even have to change them, but can just click 'OK' after having selected board and pieces. Only when a rule is not covered by a standard option (e.g. the counting rules for Makruk instead of the usual 50-move rule) the user would have to provide his own code for it, after deselecting the standard rule.
A simpler way to implement this would be to defer all handling of the standard rules such as mate testing to the basic system, but make its execution there conditional, subject to flags or numeric variables. The rule selection of the user would then only have to result in setting of those variables to the selected value at the start of the game.
Note that when I talk about 'default' code I don't mean code that would always be present or run unconditionally, but code that would be added / enabled unless the user decides he wants to provide something different. Where he should always have the option of having that something be nothing. Just allow exposing to check, capture of your own pieces, ignore mates, never declare draw etc. A non-rule-enforcing preset is the same as a rule-enforcing preset for a game without rules...
I got some new ideas for how to make it easier for non-programmers to make programmed presets. I have abandoned fairychess1.txt in favor of fairychess.txt, which I'm using with the fairychess Chess preset. Instead of using functions with the names of piece labels, it uses functions with the names of pieces. Instead of defining functions with the names of piece labels, someone using this include file would just set varables to the names of pieces. These variables would be used as references to the functions. The main things left to do are to add functions for more pieces and to write some documentation and a tutorial on how to use it.
Many links in the "Name" column are pointing to 404: Eurasian, Rococo, etc.
Maybe there is a simple thing to do to fix that?
Many links in the "Name" column are pointing to 404: Eurasian, Rococo, etc.
Maybe there is a simple thing to do to fix that?
Yes, I added "/play" before the URL. This page was originally on the play subdomain, but I got rid of that to put everything on one domain.
There are still tables, such as on this page, that don't work with the dark theme.
7 comments displayed
Permalink to the exact comments currently displayed.
Well, I'm happy that I could do non-rules-enforcing presets (and rules page submissions) for so many CVs already, after only a few years being a member. While my health is not the best (brain fog and brain lock at times, mainly to meds and age), I hadn't tried to do any sort of programming for decades. So, I'm not very representative of members/users here, I'd think. For example, I'd struggle to even upload anything to CVP (maybe it's easier to learn than I think, though when using the internet I worry in general about getting my laptop infected 'somehow', not knowing all the ways it could happen).
What my previous post also meant to allude to (aside from my other, largely unrelated topics) is that making rules-enforcing presets seems, at least at times, not entirely easy - however some users seem marvelously productive at churning them out. I've only made one, for my Throne Chess variant (same game as chess, except playing king to K8 also wins a game, instantly); Fergus helped with that by indicating the chess preset to start with (in order to suitably modify it), and also checking my code when I kept getting error messages. I found I had to add a lot of extra lines of code to check for the implications of the extra victory condition, though maybe there was a way to do the task with less lines (most presets seem remarkably low on code). However, I'm not sure that preset works correctly, as I'd need to do a lot more testing of possible game positions to see if a bug might happen - a reason I'm shy about making rules-enforcing presets in general (I'd hate for anyone's game to be spoiled due to a bug that I could not fix quickly, assuming I was available).
CVs I'd currently have trouble making even non-rules-enforcing presets for would include those with special board features, such as shogi-like ones, or Smess-like ones, or something like Eurasian Chess (e.g. which has a river demarcation); Diagram Designer currently does not support round boards, at least, so I'd have trouble making a rules page submission without learning how to upload something to CVP.
Some games I would not want to make anything but a rules-enforcing preset for, if I would learn to, as these games have complex moves by the pieces that players should best have help with by such a preset. An example would be Ultima, where for example a move by a Chameleon might conceivably wipe out a number of enemy pieces. The same goes for games with drops, because they are multi-move by the players otherwise, which could make playing a game tedious a bit.
One game I'd be reluctant to make a non-rules-enforcing preset for is Universal Chess, not only because the setup needs initial randomizing of seup code. Universal Chess would take extensive work to make its rules page submission for, and I think for this particular game such a rules page is an absolute must. I'm not yet close to being familiar with how all the piece-types Carlos included move, to boot.
All that said, I think Fergus is right that some games are too complicated to make rules-enforcing presets for, at least in a reasonable amount of time for even someone adept at making presets. I also think replacing the current preset-making process on Game Courier would seem a herculean task, though maybe it should be considered on the drawing board for the far-future. As an aside, I'm a bit concerned whether the contents of CVP database, or the website itself, will live on indefinitely, as a lot of work by a lot of people has gone into these - I hope that at least some of my better CV inventions are saved in good time by people elsewhere, just in case. Anyway, a friend requested I not help continue the discussion here about presets much longer, so I hope I've answered H.G.'s questions of me (which seemed deserving of answer) well enough.