From: authentic@tip.nl (Rick)
Subject: Basic chessprogram challenge
Dear basic programmers, chessplayers, gamers and the like,
While chessprogramming might be considered a little bit to
difficult by a lot of you, I think life is getting easier now since
there is an (almost)bugfree movegenerator in qbasic
available. It features ALL legal chessmoves(geen doorgeef
schaak;=).
I have always had the intend to show the obvious( or even
the trivial) in what is considered difficult programming. I think
I can offer even more with:
***********************************************************************
THE CHESS challenge: Write the best materialistic chess engine ..
******************************************************************************
a. Testing: would be done by letting the programs play
a 10000 games against each other
Additional measure will be given to the
way routines are coded. More chessy is
considered better, as is better understandable..
b. You can use whatever movegenerator for your moves
as long as the code is BASIC and freely available.
You can write your own or use my QBchess
from my homepage www.geocities.com/SiliconValley/
heights/7052/progs
c. The concept materialistic is defined as using only
a routine isattacked(square, bycolor) as below(attached)
Also allowed is the use of related materialistic functions.
You can use every value you want for the pieces, for
check,for central fields etc..
You can call this routine any number of times on
every move, up to any depth. A few ideas:
- Check is attacking a king square
- Get the aggregated capturevalue by
calling isattacked recursivaly with
switching colors until 0
- Threadvalue of a move can be defined
as the number of pieces of the enemy
in the different movedirections.
( A rook on E1 has threadvalue against
all pieces on the E line)
- Above should be enough to code a
chess club level player...
For even better consider this:
-As isattacked is coded you can also
use it to get values for central value
of a move( use a lookup array for
central values), which could be either
aggregated 'thread' centralvalue
of a move or only the centralvalue of
the tosquare.
- Also possible is to code cooperationvalue
of a move implemented as the aggregate
of the attacked(veld,mycolor) for all fields
a piece can attack in..
Send your solutions to the mailadress
below, which might also answer more questions
about the CHALLENGE or about featuring this
CHALLENGE at your homepage..
Well take care,
Rick's basic contribution for march 1998
His email: authentic@tip.nl
Qbchess is at www.geocities.com/siliconvalley/heights/7052/progs
It will be updated until its runs bugfree(it has its own bugcheck!)
( I have an even better source in basic available, but have to find
out about copyrights etc. first..)
'
'Kijkt of een veld aangevallen wordt door niet aanzet!
'
FUNCTION aangevallen (veld, doorkleur)
tegenstander = doorkleur
'Aangevallen door dame,toren,loper ?
Continued with next message...
*** QwkNews (tm) v2.1
* [TN71] Internet Newsgroup: alt.lang.powerbasic
--- GEcho 1.20/Pro
---------------
* Origin: Toast House Remote (1:100/561)
|