ham information 6550 glöps
- general:
- level: user
- personal:
- first name: Hector
- last name: Alarcon
- portals:
- demozoo: profile
- cdcs:
- cdc #1: Interference by Sanity
- cdc #2: ARTE by Sanity
- cdc #3: Deep - the Psilocybin Mix by Carillon & Cyberiad [web] & Parallax
- cdc #4: Roots 2.0 by Sanity
- cdc #5: Drugstore by Abyss [web]
- cdc #6: Batman Rises by Batman Group
- cdc #7: Skywards by Darkage [web]
- 32b MS-Dos Chess 14b by Desire [web]
- Only a program that eventually could win a game can be exciting. This sucks.
- isokadded on the 2015-02-05 20:33:13
- demo Amiga OCS/ECS Get Frogged by Decay [web]
- Baby, my heart's on fire!
- rulezadded on the 2015-02-04 20:41:33
- 512b Windows Hephaestus by org_100h [web]
- Good proof of concept.
- rulezadded on the 2015-02-03 22:09:42
- demo Amiga AGA Are We Dead Yet? by Dekadence [web]
- I love chunky envmapped spikeballs! Cool music. You are quite alive.
Now we need to prove that we are also breathing... making more demos. - rulezadded on the 2015-02-02 02:45:45
- intro Amiga OCS/ECS Intro2015 by Desire [web]
- This is pretty ace. Great tune.
- rulezadded on the 2015-02-01 02:45:54
- invitation Amiga OCS/ECS Revision 2015 Invitation by Nah-Kolor [web]
- Nice music. The rest a little bit "meh".
- rulezadded on the 2015-02-01 00:19:36
- 32b MS-Dos Chess 14b by Desire [web]
- No, no no. The great Sopiko Guramishvili would never resign before play!
- sucksadded on the 2015-01-31 23:41:09
- 512b game MS-Dos BootChess by Red Sector Inc. [web]
- Baudsurfer: It seems that AtomChess do not check for legal moves at input so you can type H7H5 (moving a black piece instead of one of your white pieces) and the program then move another black piece (g7 pawn in your example). Notice that even if this lack of legallity test (of the rival moves) is a bad thing it is still better that a program that does not care of place his king in check (something that is illegal in chess!). So AtomChess can play an entirely legal game of chess (limited because it does not have castling, en passant captures, promotions, etc... but still legal inside this set of limitations) but your program cannot because it will play illegal moves the moment it allows his king to move into a square that is controlled by an enemy piece.
The code snipets that you show us are not relevant. They are data related to the initial placement of pieces, relative values and offsets for the move generator algorithm. Not sure of that you pretend to prove with that.
nanochess: Kudos to you! Your program plays very much interesting chess than BootChess (it has even randomness to spice the game!). It is convenient that your program plays black and Bootchess white. We can confront them. ;] - isokadded on the 2015-01-31 02:11:26
- 512b game MS-Dos BootChess by Red Sector Inc. [web]
- @HellMood: Implementing a Monte Carlo approach would require the ability to make and unmake moves. It will be necessary to do it many "plies" and evaluate depth nodes/leafs in the game tree. I assume that BootChess cannot make/unmake moves because it does not use minmax/negamax style of search (I didn't examine the whole source code, just read the bootchess.txt).
With randomness I mean something very simple, like add a small random factor, about half a pawn value after evaluate every position so the program could choose a different line when there are many equally good possibilities.
@Baudsurfer: Improve it a little bit and you will get more thumbs. ;] - isokadded on the 2015-01-27 22:43:40
- 512b game MS-Dos BootChess by Red Sector Inc. [web]
- Don't take me wrong. I know what you have achieved and I like it. A very compact program capable of generate pseudolegal moves. Another step forward and your program could avoid placing the King in check and also play a bit better.
It is very difficult, considering your less-than-1K constraint, to make a decent AI but you should, by all means, try to implement some awareness of the control over the board of the enemy pieces (and also yours, in the turn of the opponent). Try, for instance, to fill an array representing "board pressure" or "force field" (before calculate the next possible moves) with numbers of attacks of enemy pieces in the board (you can clear the array to zeroes and use the pseudolegal moves generator to add +1 to every square that could be a destination for some enemy piece). Then take care when checking the legality of a king movement that the destination square are not controlled by enemy forces.
You could avoid mistakes like the bad exchanges implementing some sort of static exchange evaluator (static because does not rely on techniques like negamax that you do not have space to implementent). You can base that exchange evaluation in the data present in that array of "pressure". Never take a piece less valuable than yours if the destination square is under attack.
This are imperfect solutions and the program still will play bad cheap chess. But al least will endurance a bit more and maybe win some games against beginners. Even the idea of use the taxi distance can work somehow if your AI is aware of the minefield of squares taken by the rival and avoid to place his pieces on bad squares. But it does not work very well in the current form of your program.
Just don't be lazy. There is a way to test that old "1K ZX Chess"? I would like to see how well play.
Your goal should be making a program able to beat that old relic with less bytes!
By the way, add a little bit of randomness in the game. Pure deterministic opponents can kill fun in chess. - isokadded on the 2015-01-27 22:06:49
account created on the 2002-02-20 20:17:35
