Check out Symmetric Chess, our featured variant for March, 2024.


[ 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 ]

Comments by FergusDuniho

EarliestEarlier Reverse Order LaterLatest
Recognized Chess Variants. Index page listing the variants we feel are most significant. (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Apr 1, 2020 12:57 AM UTC:

Is the fact that the recognised variants section wasn't updated from 2006 means that the administrators of chessvariants haven't found any new / recent variant worth to be added ?

No, it means that this project has been discontinued. This has nothing to do with the quality of Chess variants coming out since its discontinuation. It has been replaced with allowing members to designate their favorite Chess variants. This gives everyone who cares to participate an equal voice, which is more democratic than letting editors come up with a list. At present, 3 people have favorited Musketeer Chess.


🕸Fergus Duniho wrote on Wed, Apr 1, 2020 11:40 AM UTC:

I have a clear conflict of interest here. 

That hits the head on the nail. Conflict of interest is the main reason the Recognized Chess Variants project has been discontinued. This site is run by Chess variant inventors, and as inventors, we all want recognition for our own variants. But to do something like the Recognized Chess Variants project requires impartiality and the willingness to not use it to promote our own pet projects. The Favorites system works differently. Inventors may favorite their own games, but it's mainly how other people vote that determines whether a game rises to the top of the list. Prolific inventors are even encouraged to use this as a tool for designating their own favorites among their own games, because this is relevant information. I have not favorited all of my games, because I think it is more relevant for people to know which of my games are my personal favorites than it is for me to promote all my games equally. Even though I have invented my own games, I am detached enough from them that I can be critical of them and favor some over others. But I am not so detached from my games that I am uninterested in promoting any of them. Instead of demanding impartiality, the Favorites system allows partiality but minimizes its effect. This encourages more participation, and it provides a more accurate reading on how much recognition individual games actually have.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Apr 1, 2020 01:02 PM UTC:

I see three problems with your code.

First, you're misspelling origin.

Second, it looks like you are using some operators incorrectly. Operators always take their operands on the right side. This is not like C or PHP, which lets you put operators between operands. To test for equality, put both values you want to compare on the right side of ==.

Third, try doing it backwards from how you're doing it, because it evaluates everything in reverse order. Place the normal King moves at the end. Just before that, include an and that checks a flag value. Before that, include the moves the King is allowed on its first move.

It's important to bear in mind how the logical operators are designed to break out of the function early if given only one operator instead of two. Compare these two lines:

def King or checkleap #0 #1 1 1 checkleap #0 #1 1 0 ;

def King checkleap #0 #1 1 1 or checkleap #0 #1 1 0;

The first one calls checkleap twice everytime, but the second calls checkleap a second time only if it was not a one space orthogonal move. As I mentioned above, operators always go on the right. The second is not an example of placing a logical operator between two operands. It is an example of a logical operator having a single operator on its right side. When or gets a single true value, it exits the function and returns true. This eliminates the need to evaluate checkleap #0 #1 1 1 when checkleap #0 #1 1 0 has already been evaluated as true.

Likewise, and will exit a function and return false if it gets a single false value. Use this to have your function evaluate the first move of a King only on its first move. Design your function so that it breaks out early if it is not a regular King move and the King has already moved. The way your function is currently designed, it does all the calculations for the King's first move everytime the King moves, and that is wasteful.

 

 


🕸📝Fergus Duniho wrote on Wed, Apr 1, 2020 02:14 PM UTC:

In your code, K1stmove just appears by itself, and it gets interpreted as a string literal that has no meaning. I expect it will always evaluate to true. So, your code should be logically equivalent to this:

def Apothecary_King or or checkleap #0 #1 2 1 checkleap #0 #1 1 0 checkleap #0 #1 1 1;

That should work for displaying Knight moves. So, I don't know why your code is not displaying Knight moves. But other things about it need to be fixed anyway.

Also, your logical operators are all at the beginning, which is wasteful. Learn to use them with single arguments so that you can break out of the function early when it already has the correct result, like this example does:

def Apothecary_King checkleap #0 #1 2 1 or checkleap #0 #1 1 0 or checkleap #0 #1 1 1;

Take a look at the Pawn functions for more complex examples of how to do this.


🕸📝Fergus Duniho wrote on Wed, Apr 1, 2020 08:56 PM UTC:

I have just added a new section on breaking logic. It goes over the White_Pawn function in detail.


Apothecary Chess-Modern. Large board variant obtained through tinkering with known games.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, Apr 2, 2020 09:37 PM UTC:

Comparing this page to your Game Courier code, I see things in your code that I don't see on this page, such as rules concerning Pawn promotion and the King's first move.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Thu, Apr 2, 2020 10:02 PM UTC:

You have a bunch of lines beginning with or and and. Each of these lines is checking for islower space #1 or for isupper space #1, and that's where your problem lies. In potential moves, space #1 will contain what is on the space prior to making the move, which won't be the King, but for actual moves, it will contain the piece that has moved there. I gather you mean to be making sure that only the King whose first move is contained in the variable on that line gets to move. This works for actual moves, but it is not working for potential moves, because in potential moves, space #1 contains the value of the piece on the space prior to making the move.

In Chess, the King is allowed to castle on the first move, and keeping track of whether the King has already moved is handled by flagging the space the King begins on, then unsetting the flag with every subsequent King move. This easily works for both Kings, because each King begins on a different space. So, I recommend flagging the King's initial spaces rather than keeping separate K1stmove and k1stmove variables.

 


🕸📝Fergus Duniho wrote on Fri, Apr 3, 2020 02:28 PM UTC:

I have added a new section called "Actual vs Potential Moves".


Game Courier Developer's Guide. Learn how to design and program Chess variants for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Fri, Apr 3, 2020 05:46 PM UTC:

I modified cond to work properly, and I updated the section on recursive functions. Since cond mimics the operation of ?: in PHP, I had written it using ?:. I rewrote it using if and else, and it is now able to work in recursive functions, because it no longer evaluates code that it shouldn't evaluate.


Recognized Chess Variants. Index page listing the variants we feel are most significant. (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Apr 3, 2020 08:47 PM UTC:

That's something that David Howe instituted so that the most important pages would be at the top of the list when listing search results. I think he largely included the Recognized Variants, though some other things are also included. It might be a good idea to replace Recognized Variants and Primary Items with Featured Games and Featured Pages, the former being a subset of the latter. Featured pages would be ones that we want to draw greater attention to or that we expect users would be looking for more. These could include links to games that enough of us think highly of, links to well-known or popular games, and links to commercially available commercial games. These could be featured at the top of search results, as Primary Items are, but referred to as Featured Pages instead. Also, they could be a bit more dynamic than Recognized Variants, meaning we could drop something from the Featured Pages, such as a commercial game no longer being made, or a game that has been reevaluated.


🕸Fergus Duniho wrote on Fri, Apr 3, 2020 11:09 PM UTC:

The reason I want to use the word "Featured" is that it has a precise, concrete meaning. Something would be featured if we feature it, and it wouldn't be featured if we don't. In contrast, calling something "Recognized" or "Primary" suggests some external quality. The idea behind the Recognized Variants is to identify those that have won or merit some kind of recognition. This can lead to disagreement or uncertainty over which variants should be considered recognized. But the idea of Featured Games isn't tied to some nebulous external standard. We could feature or unfeature games for different reasons, permanently featuring some games, and temporarily featuring others. Since it's main purpose would be to draw attention to some pages in search results, I agree that it should not be broken into categories. This purpose would also put a practical limit on how many pages should be featured.


🕸Fergus Duniho wrote on Sat, Apr 4, 2020 05:50 PM UTC:

I have just changed the text in queryinc.php to Featured Pages or to Featured Games when the Game type is selected. I am weeding through the currently featured games. I am checking how many members have favorited a game, its average rating and how many ratings it has, how popular it is on Game Courier, and whether it has a chapter in Pritchard's Popular Chess Variants or Gollon's Chess Variations. For now, I'll continue to feature games that meet one of these criteria. But I will list below some games that just scrape by and might be worth dropping from being featured:

  • Avalanche Chess is mentioned in PCV, but it hasn't proven popular on the CVP.
  • Capablanca Random Chess has a few positive reviews, though most don't actually mention the game. It is favorited by one member.
  • Dragon Chess by Gary Gygax is favorited by four members.
  • Janus Chess is favorited by five people.
  • Los Alamos Chess is favorited by one member. It has some positive reviews, but two are anonymous. I know it is of historical interest.
  • Magnetic Chess is favorited by two people, and Pritchard has a chapter on it in PCV.
  • Minishogi is favorited by four people.
  • Odin's Rune Chess has six excellent reviews and a good one, but it is the favorite of only one person, and it is fairly unpopular on Game Courier.
  • Raumschach is favorited by three people, and I believe Dickins mentions it in A Guide to Fairy Chess
  • Star Trek Tridimensional Chess is favorited by one person and has only two reviews, but it is very well known, and expensive sets are sold for it.

The following games do not meet any of the criteria above and are being unfeatured for now:

  • Byzantine Chess
  • Chess with Batteries has one review and is favorited by one person. It is not played on Game Courier.
  • Countdown
  • Crazy 38's is favorited by one person and has two good reviews. The one person who favorited it says in his review that he has not played it.
  • Diamond Chess
  • Flip Chess and Flip Shogi are favorited by one person, have no reviews, and are unplayed on Game Courier.
  • Pocket Knight
  • TenCubed Chess is favorited by only two people and is fairly unpopular on Game Courier.

🕸Fergus Duniho wrote on Sat, Apr 4, 2020 06:12 PM UTC:

I'm now looking into omissions. I have searched the database for Recognized Variants that are not Primary Items. I am adding those that meet other criteria. Based on this, I have added Janggi.


🕸Fergus Duniho wrote on Sat, Apr 4, 2020 07:46 PM UTC:

Seeing that Omega Chess wasn't listed in the Featured Games, I double checked that it was on the Recognized Variants page. When I looked it up in the database, the Link page was marked as Recognized and Primary. I switched these to the Game page, so that it shows up in the Featured Games listing.


Average Game Ratings. An ordered list of the ratings for the games on this site.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sat, Apr 4, 2020 08:21 PM UTC:

This page was giving the wrong URLs. I just fixed that.


Sac Chess. Game with 60 pieces. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sun, Apr 5, 2020 01:35 AM UTC:Excellent ★★★★★

I can't believe this game hasn't been reviewed yet. This is the best game I've played that includes an Amazon. I normally leave the Amazon out of my games, because it has the power to force checkmate by itself, and that has the potential to wreak a game. However, that hasn't been a problem with this game. This game includes several other weaker compound pieces that help make it unsafe to move the Amazons out too early. To get to the point where you could use an Amazon to force checkmate against a King, you have to do lots of maneuvering of other pieces. Furthermore, the potential of the Amazon getting a bead on the King means that position is sometimes more important than material advantage. You can't count on winning just because you are ahead materially. If you find that you can't stop your opponent's Amazon, you may lose even if you're materially ahead. This makes the game more dynamic and exciting.


Recognized Chess Variants. Index page listing the variants we feel are most significant. (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sun, Apr 5, 2020 01:07 PM UTC:

I think the next step will be to dismantle the Recognized Chess Variants by removing the manual and menu links to it. I can then replace them with automated links to a list of the Featured Games. So pages would go from mentioning that a game is a Recognized Variant to mentioning that it is a Featured Game. On pages for games that are not featured, I could add a link to a random featured game with mention of the Featured Games or to something about Favorited Games, so that each gets some additional exposure.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Apr 5, 2020 02:03 PM UTC:

Sorry, I made a couple typos. The last two lines should be:

setconst k King;

setconst K King;

Also, you still haven't followed my advice about keeping track of the King's first move the same way this is already done for Chess. If you did, your Apothecary_King function would be much simpler to write.


Recognized Chess Variants. Index page listing the variants we feel are most significant. (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sun, Apr 5, 2020 05:40 PM UTC:

I've removed the manual Recognized Variants banners from the tops of the Recognized Variants. In doing so, I learned that some of them never had the text identifying them as Recognized Variants.  So, it will be better to include automated text that shows up if the right column in the database is checked. I've also started doing grep searches to find and remove other links to rindex.html.


🕸Fergus Duniho wrote on Sun, Apr 5, 2020 08:27 PM UTC:

I have added an automated notice to each Featured Game.


About Game Courier. Web-based system for playing many different variants by email or in real-time.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sun, Apr 5, 2020 11:03 PM UTC:

Since the last tournament took so long, I'm going to propose we follow it up with a tournament of games that are designed to end very quickly. I have in mind games like Extra Move Chess, Wormhole Chess, Avalanche Chess, Marseillais Chess, and other small or short games. Quick games were popular for postal correspondence, because it took days to mail moves back and forth. Many of us, including myself, are too young to have been involved with the postal correspondence groups of NOST or AISE, and a tournament like this would help us get in touch with the kinds of games that earlier generation of Chess variant hobbyists played.


Recognized Chess Variants. Index page listing the variants we feel are most significant. (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Mon, Apr 6, 2020 11:35 AM UTC:

I was having that problem yesterday with Firefox on Windows 10, and I fixed it by changing the CSS. I just checked Safari on my iPad, and it's not having that problem. If you are still having that problem, the old CSS may still be cached in your browser.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, Apr 6, 2020 12:07 PM UTC:

I think your problem stems from the overly complicated way you are writing your Apothecary_King function due to keeping track of whether the King has moved in a more complicated manner. It should clear up once you change how you keep track of whether the King has already moved and write a simpler function that uses flagged spaces.


🕸📝Fergus Duniho wrote on Mon, Apr 6, 2020 09:25 PM UTC:

While the simplest way of writing your Apothecary_King function will use flagged spaces, this should work using the method you're using now:

def Apothecary_King
checkleap #0 #1 1 3
or checkleap #0 #1 1 2
and match rankname #1 1 10
and or var K1stmove == #0 f2 or var k1stmove == #0 f9
or checkleap #0 #1 1 0 
or checkleap #0 #1 1 1;

Although the piece being moved will be found on a different space for actual moves and potential moves, the location of the original space remains the same whether the move is actual or potential. So, if the King is moving from its original space, and its 1st move variable is set, then it is on it's first move. Since the available Knight and Camel moves only allow the King to go to the back rank, this function also checks whether the move is to the back rank. This allows it to use checkleap instead of checkaleap, and that avoids the need to test which King is moving on each line.


🕸📝Fergus Duniho wrote on Tue, Apr 7, 2020 12:02 PM UTC:

I was wondering about one line during the night. This should correct it. Note that if you had switched to flags earlier, this line wouldn't even be needed. Keeping things simple makes programming easier.

def Apothecary_King
checkleap #0 #1 1 3
or checkleap #0 #1 1 2
and match rankname #1 1 10
and or and var K1stmove == #0 f2 and var k1stmove == #0 f9
or checkleap #0 #1 1 0 
or checkleap #0 #1 1 1;

25 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.