p4wn, a smallish javascript chess engine
P4wn is a small public domain chess engine. It was first released in 2002, and substantially revised in 2012.
Instructions
Click on the piece you want to move, then click where you want it to be.
If the game is too easy or hard, click on the computer level button until it seems about right.
When you make a stupid move, you can undo it by clicking on the undo button.
Further instructions can be found in the README file.
News
2012-08-12: P4wn 2.01 released
Version 2 had user interface problems in Microsoft Explorer. Thanks to Uwe Alex for the bug report.
2012-07-03: P4wn 2 released
Version 2 has been released, following the apparent cessation of activity. Read the announcement if you wish, and look out for version 3 in 2022.
Zip and tar files can be found at Sourceforge.
2012-03-22: P4wn 2 also on Github
At https://github.com/douglasbagnall/p4wn. The clarified code is currently known as “almost version 2”.
2012-03-19: Switch to Git, with clarified code
All of a sudden I decided to pay some attention to this. The git repository obsoletes the CVS, and the code has had some attention to make it explicable.
2005-03-23: Sven Vahar's fancy version in CVS
The improved board that Sven Vahar made in December 2004 is now available in CVS, and as a zip download.
2005-03-04: Unicode version by Antony Lesuisse
Antony Lesuisse replaced the external gifs with unicode glyphs, creating a completely self-contained page of only 4385 bytes. It has been added to CVS.
If you don't see a row of chess pieces here (♔♕♖♗♝♞♟), you might have problems using the page - it depends on your browser's font rendering.
2004-12-14: New version by Sven Vahar
Sven Vahar has created a cleaner interface with help text, with both Estonian and English versions.
2004-03-25: Sourceforge site registered
This is what you are looking at.
2002-06-16: First released in 5k web competition
Development started in 2000 and skipped 2001.
How it works
It recursively explores the tree of possible moves, keeping score along the way. It tries to take as many pieces as possible and get into the centre early. That's about all. Its endgame strategy is to win before the endgame.
Mailing list
There is a mailing list hosted by sourceforge, which averages about two messages per year. Ask any questions there.
Similar Projects
Gary Linscott wrote Garbochess-JS. It seems much stronger than p4wn, and uses the WebWorkers javascript to keep the UI going while it schemes away in the background.
Óscar Toledo G. has written various tiny chess engines in various languages, including javascript. Óscar Toledo is the undisputed world champion of chess minification and obfuscation. His code manages to somehow be humorous at the same time as being unreadably compact. It plays quite well, too.
Neil Pearce wrote a javascript chess game which no longer seems to be online.
There was one by David Moore in the 2001 5k competition. Now it is here.
The most famous small chess implentation is probably the 1k ZX81 game. Not only is it short, it ran in only 1024 bytes of ram (javascript has megabytes to play with). On the other hand, it didn't know all the rules.