pyBudget v0.2.2 released, Chess0 back soon
I just finished a couple of patches for pyBudget and it is now on its version 0.2.2. This version removes the infrastructure for preferences, since I decided to not to complicate the application more. It also brings a couple of important fixes:
- 'Save as' will make the program remembering the name for the next saving
- prompt the user for saving the current budget if it was modified but not saved, before quitting
Download pyBudget
On the other line, Chess0 seems to many people like forgotten, but that is not true. I just didn't have enough time to put back my strengths and start coding again. At least, the main point is to reach v0.4 during the present year (2010), which should include a couple of speed improvements (making it about a 400% faster in searches) and several tactical improvements when playing middle-games and end-games. Version v0.5 (if any) would then include static learning and book, whereas version v0.6 (if any, and which I really doubt) would include adaptive learning techniques.
Finally, there is another thing I have been thinking for several months already. As I got my Python book as a birthday present, I though I could develop some application for practicing. Moreover, I had (already for more than a year) the idea of programming a family-tree program, where one could add as many persons as he or she wanted, and then the program would calculate how one person is related to another (apparently unrelated). This program is not yet started, but I have started they design, and it will be programmed in Python for sure.
The last concern is that, nowadays, it is important to make user-friendly programs, and hence I think I will develop this program using a graphical interface. This should, of course, be portable to non-Linux platforms, and so my choice will be most likely PyQt, WxPython or Tkinter. Any suggestion?
Chess0 goes public
Today before I went to the gym, I got an email from a guy called Michael Diosi, who was asking about Chess0 and its interoperability with the Winboard protocol. At first, I thought it was some kind of joke, but as I replied him, I noticed that he was interested and, in fact, he is the web master (as far as I understood) of the web playwitharena.com, which is a website.
Arena is a free available Graphical User Interface (GUI) for chess programs (engines) by Martin Blume. Arena runs on Win95, NT4 or higher Microsoft OS versions. Arena is compatible to Winboard protocol I, II and UCI protocol I, II. Furthermore, compatible to Chess960, DGT electronic chess board & DGT clock XP, Autoplayer, ICS (chess server) and much more -> graphics (1280 x 1024).
To the point, the main topic of Michael's email was that he was testing Chess0 v0.3 for Win32 and decided to include my engine on Arena website. Thus, Chess0 becomes officially public and that means that more people out there are starting to test it and use it, for whichever purpose, which is very important to me and to my Bachelor's Thesis.
In consequence, I would like to give a big THANK to both Michael Diosi and Martin Blume for being interested in Chess0 and also for working on a very nice project on their website, collaborating with many computer chess programmers around the World.
Chess0 v0.3
After two weeks of hard development, version 0.3 of Chess0 is finally out. I pushed the last commits this morning and Chess0 is now more robust and enjoyable, as it matures with time. The main changes from the version 0.2 are:
- improved heuristics in Adaptive AI
- initial support for book moves
- evaluation cache support
- immediate white opening from book
- working dynamic quantums for Adaptive AI
- added position editor, saver and loader
- initial support for basic logging
- fix a nasty segfault by cleaning up (un)doMove()
- add several opening moves to the book
- improve performance in Adaptive AI heuristics
- add trivial quiescence search support
- clean up the alpha-beta algorithm
- add several interesting positions under tests/
I know these changes all mean plenty of modifications to Chess0, but as the time passes, there should be less and less commits every time. Actually, the number of source lines has gone beyond 17,000, which is quite much for the scope of this project (my Bachelor's Thesis).
Among all these changes, the most important ones are, with no doubt:
quiescence search: this is the basis of my Bachelor's Thesis right now, and it makes Chess0 play times better than before. This
is due to the fact that, with quiescence search, Chess0 won't stop
analyzing at a fixed depth if the board may contain unstable situations,
such as captures or checks to the king. This is used to avoid the
horizon effect.
position editor: which allows the user to edit positions,
save them to files and load them from files. This is an essential tool for
demonstrating Chess0 or for working with interesting positions worth
of analysis.
cache support: it keeps track of each analysis and stores
it in a cache memory. This way, later analysis can be already found in the
cache memory, thus skipping the whole evaluation to some extent, and
speeding up the program by a large factor.
Compared to version 0.2, Chess0 is now capable of playing proper chess games and show some skill in many areas of the game. However, there is a long way to go before Chess0 can qualify for a "good" chess engine. Some missing features are end-game mating, thinking in opponent's time, middle-game tactics, and some other minor details that would make it much stronger.
So far, even some interesting features are missing, the purpose of my Bachelor's Thesis is becoming close, as all the adaptive mechanisms are already implemented in Chess0 and I shall now start experimenting with interesting positions and games between the Classic AI and the Adaptive AI in order to find the differences, the improvements and some conclusions.
Download
| Older posts >> |
