rajrakeshdr / pychess

Automatically exported from code.google.com/p/pychess
GNU General Public License v3.0
0 stars 0 forks source link

PyChess 'Easy' should be more easy #289

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
For beginners and chess learners it's annoying if they can't make the last
move to checkmate PyChess.
This was reported by my colleague's 6 1/2 year old son, who is just started
to learn chess from Garry's book :)

Original issue reported on code.google.com by gbtami on 10 Jan 2008 at 1:53

GoogleCodeExporter commented 9 years ago
I see. I always thought of it as a nice feature, but naturally people should be
allowed to give the killing blow.
Perhaps we should make it more human, and make it suggest remis instead? :)

Original comment by lobais on 10 Jan 2008 at 2:27

GoogleCodeExporter commented 9 years ago
Oh, and good to hear that PyChess is playable by all ages.
At what level did he beat PyChess? :)

Original comment by lobais on 10 Jan 2008 at 2:29

GoogleCodeExporter commented 9 years ago
Easy :)
Btw. i remember we did a talk about how easy should PyChess be.
My colleague noticed, that 0.6 easy level was better tuned, because hes son was 
able
to win sometimes (it's wery important to a wery beginner, not to lose hes 
motivation
to continue learning!), but 0.8 easy level is too strong for him. So now i 
think you
was right, and PyChess on easy level shouldn't have to do quiescent.
What do you think?

Original comment by gbtami on 10 Jan 2008 at 3:37

GoogleCodeExporter commented 9 years ago
I don't think it would be very fun to play against it with no quiescent. Not 
because
it would be to easy, but because it would be to machiny.
Rather I think we should find a way to make it not always do the best move it 
finds..

Original comment by lobais on 10 Jan 2008 at 4:24

GoogleCodeExporter commented 9 years ago
I quite agree.

Original comment by gbtami on 10 Jan 2008 at 7:38

GoogleCodeExporter commented 9 years ago
The checkmating thing is fixed.
I'll rename the post to adress the strength issue.

I made a post on the rybka "Chess Engines talk" forum to get some ideas:
http://www.rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=3000
I got these:
1) Randomly prune some captures/checks/other tactics
2) Randomize scores a bit
3) Introduce errors to your eval
4) Check out any engines that seem to be good at this. Hamsters, for example.
5) Get REALLY strong. That way, you'll have a better idea about just how bad 
your
deliberately bad moves are.

Original comment by lobais on 10 Jan 2008 at 9:00

GoogleCodeExporter commented 9 years ago
ok, by 846 PyChess will randomly abort quientscent search. This makes it 
sometimes
forget about its pieces, and thereby easier to take down.

The chance is currently 8% in easy games and 2% in intermediate games. It is 
not too
intuitive where to optimize this, but it is line 336 in PyChess.py. (I think 
PyChess
should be moved to UCI in a later version for a more stable game and more easy
parameter configuration.)

I don't know if we should also add "errors" to the eval function.

Original comment by lobais on 10 Jan 2008 at 9:31

GoogleCodeExporter commented 9 years ago
Can you release a new beta, to let people test this and other fixes?
My colleague don't like to install from sources, and i don't know how to build 
a .deb

Original comment by gbtami on 12 Jan 2008 at 11:34

GoogleCodeExporter commented 9 years ago
Well, he don't have to install anything, just "svn checkout" and 
"PYTHONPATH=lib/
./pychess"
But yes, we should have a new beta some time in next week I think. We still 
have some
hard errors to solve before a final though.

Original comment by lobais on 12 Jan 2008 at 12:28

GoogleCodeExporter commented 9 years ago
Tried on easy level. Cool :)

Original comment by gbtami on 16 Jan 2008 at 5:24