ham information 6765 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]
- 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
- 512b game MS-Dos BootChess by Red Sector Inc. [web]
- Great, I'm alway ready for a good game of chess. So here we go...
White: Boot Chess
Black: Ham/SFL
1. e2e4 e7e5
2. Ng1e2 (with this movement, BootChess enters the Alapin's Opening)
Notice that, in the source code, there is a comentary about "hardcoded Spanish Opening"... well, just the first move of the Spanish (1 e4) is really hardcoded so it is misleading to say that BootChess knows that opening (As every good chess player knows, lots of opening starts with 1 e4, not just the Spanish, the Spanish Opening is 1 e4 e5 2 Nf3 Nf6 3 Bb5)
2. ... Ng8f6
3. Nb1c3 d7d5
4. e4xd5 Nf6xd5
5. Nc3xd5 Bf8c5
Till now BootChess played very well but suddenly...
6. Nd5xc7? Qd8xc7
Nxc7 is a bad mistake. BootChess exchange a knight for a pawn.
7. h2h3 Nb8c6
8. Rh1h2 e5e4
9. g2g3 f7f5
10. Bf1g2 Rh8f8
I would like to castle instead of place a rook on f8 but the program does not allow me to do it. So I play Rh8f8.
11. Bg2xe4? f5xe4
Another bad exchange. A bishop for a pawn. This program likes all captures!
12. f2f3 e4xf3
13. Ke1f2 f3xe2+
14. Kf2xe2 (screenshot 1)

It seems that white are lost and soon a checkmate will come. I decided to take the g3 pawn to prepare a decisive attack with queen and rook combined.
14. ... Qc7xg3
But then...
15. Ke2f3?? <-illegal move! (screenshot 2)

BootChess does not care if his King is placed on a square controlled by the enemy pieces. Very bad and very illegal. This is forbidden by chess rules!
15. ... QxK++
16. Program exit to MSDOS
Well... It is clear to me that you put more interest in making a small chess program that in making a good chess program. That's understandable even if the result is a program very easy to beat but... you cannot say that BootChess is a complete chess program because it does not allow to castle (didn't tried promotions, underpromotions, en passant pawn captures, stalemate... but I bet that are not supported, are they?) and, worst, it does not care about avoid to place a King in check. Every chess player knows that it is illegal (the movement CANNOT be made) to place your king on a square controlled by your rival pieces. If you allow it, then this is not chess.
I myself coded a few chess engines so I know how hard it is to do it and squeeze it in a small program. So I will not thumb down this nice effort. But you should stop that bragging about breaking records until you make a complete chess program. - isokadded on the 2015-01-27 20:53:17
- 16k Amstrad CPC Battro by Batman Group
- Good 16K.
- rulezadded on the 2015-01-25 21:49:39
- demo Amiga OCS/ECS Amigaluscious by Onslaught [web]
- It's good that you did it for A500 but... it would be better with less preposterous content.
- isokadded on the 2015-01-23 14:27:13
- musicdisk Commodore 64 Sid Doing Paula by Arkanix Labs [web]
- Just great!
- rulezadded on the 2015-01-20 21:59:18
account created on the 2002-02-20 20:17:35
