Check out Janggi (Korean Chess), our featured variant for November, 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/Ratings for a Single Item

Earlier Reverse Order Later
Forward Chess ZIP file. Download these files to play Forward Chess with Zillions of Games![All Comments] [Add Comment or Rating]
💡📝Michael Nelson wrote on Wed, Feb 4, 2004 10:18 PM UTC:
The Zillions implementation handles checkmate/stalemate positions fairly well, but often overlooks fairly obvious 'run for the border' (moving the King to the enemy eighth rank) wins. Any suggestions how to improve its play in this area?

Peter Aronson wrote on Wed, Feb 4, 2004 11:24 PM UTC:
Make reaching the back row part of checkmate. Add code such that if the a King moves to the back row, it also captures an opposing King (an extra one off board can be easier to find). <p> This means the actual winning move won't be made, however. Variations of this approach might encourage Zillions without altering play.

Larry Smith wrote on Wed, Feb 4, 2004 11:48 PM UTC:
Instead of the win-conditon being the presence of the King within a
particular zone, make the win-conditon also the absence of the King on the
rest of the field.

This is your current condition:

  (win-condition (White Black) (absolute-config King (promotion-zone)))

Make it:

(win-condition (White Black) 
(and
(absolute-config King (promotion-zone))
(absolute-config (not King) (not-promotion-zone))
)
)

You will have to define the not-promotion-zone, which will be all the
cells that are not part of the normal promotion-zone.

The Zillions engine will now have the 'urge' to move that King into the
promotion-zone.

Anonymous wrote on Thu, Feb 5, 2004 12:26 AM UTC:
Thanks, Peter. It finds and defends against these wins much better now.
The
macro I used, wtih comments:


(define King-forward (
$1
(verify not-friend?)
(if (in-zone? promotion-zone) 
	(verify not-attacked?) ; to prevent moving into check
	(if (in-zone? promotion-zone a1)
		(capture White-throne) ; dummy position with a white King
	else
		(capture Black-throne) ; dummy position with a Black King
	)
	add
else
   	(add-create) ; another macro to make the move and create a piece
; if appropriate. Your normal move goes here.
)
))

💡📝Michael Nelson wrote on Thu, Feb 5, 2004 01:28 AM UTC:
Larry's suggestion also improves play and the code is elegant. I'm going
to
do some testing and see which approach seems to do better.

I have a more elegant macro for Peter's method which will allow the
final
move to be made:

(define King-win (
(verify (in-zone? promotion-zone))
(if (in-zone? promotion-zone a1)
	White-throne ; dummy position with a White King
else
	Black-throne ; dummy position with a Black King
)
add
))

5 comments displayed

Earlier Reverse Order Later

Permalink to the exact comments currently displayed.