Home

Video Games

Computer Chess

About Me

Computer chess - my program, Francesca

Francesca (Windows/ Winboard version)

Here, you can download the Winboard version of Francesca, the chess playing program I have written. Please note, to run this version of Francesca, you must download and install Tim Mann's Winboard program.

Download the latest version of Francesca v0.32 (Sept 2022) here!

Older versions are available as well

Any comments about any version of Francesca are welcome! Please feel free to email tom@silentshark.co.uk with your feedback.

To help you get Francesca up and running under Winboard, I've added a Francesca Quick Start page.

Introduction

Francesca is a chess playing program which I have developed in my spare time over the last few years. It (she?) is written in C, and uses many state of the art chess-programming techniques.

She has competed in several computer chess championships since 1995, and scored well against strong opposition at the 1999 World Computer Chess Championship.

Before I go any further, let me explain one thing, which people keep on asking: why the name Francesca?

History

I initially thought of writing a computer chess program in 1991, when sitting on a beach in sunny Ibiza. During that summer I quickly hacked up a simple program, written on the wonderful old Amiga, initially in AmigaBasic, then in C.

Back then there was very little detail published on the design of computer chess programs. So I based my initial program on the ideas published in "How Computers Play Chess" (Levy and Newborn). I think the first program which played any sort of recognisable chess searched to 3 plies, and searched about 200 positions per second.

In the Autumn of 1991, I had the chance to try out my creation on a 386SX PC, running at 16Mhz. It seemed so fast compared with the Amiga! Before long I bought myself a 486DX PC, running at 33Mhz, and began developing Francesca in earnest.

Little by little, Francesca's playing standard improved. Null moves added a turbo charger to an otherwise unremarkable chess engine, and evaluation by piece-value squares increased the NPS figure and search depth. There were still problems, and after the WMCCC in 1995 (Paderborn), I bit the bullet, and added hash tables. Improving move order and history tables, along with the new hash tables meant that Francesa 1996 was over 10 times quicker at searching through the plies than Francesca 1995. And it showed, Francesca gaining a very respectable 9th= place at the WMCCC 1996 in Jakarta.

Between Jakarta and the WMCCC 1997 in Paris, there were few changes - some evaluation changes, some bug fixes, and some optimizations. And some bugs, too. Francesca struggled against some opponents she really should have beaten.

(continued)

The problems at Paris made me realize that a change in direction was required. I rewrote the entire evaluation function, changing Francesca from a simple "piece-value squares" searcher to a full "leaf evaluator". The benefits were immediate, obvious, and immense. Suddenly, Francesca was playing more interesting, challenging chess. I had the opportunity to enter her into the 1998 Spanish computer chess championship, and she came within an ace of winning the whole competition!

Shortly after the 1998 Spanish computer chess championship, I was encouraged to rewrite my program so it could function as a chess engine within Tim Mann's (wonderful) Winboard program. This greatly facilitated testing (my PC frequently spends days auto-playing hundreds of games between Francesca and other engines). Further, a lot of computer chess enthusiasts (for example, Olivier Deville), like to run computer chess competitions for Winboard engines.

The high spot of Francesca's career was undoubtedly the 1999 World Computer Chess Championships, held in Paderborn, Germany. This is an "open hardware" event, so many programs were playing on hardware which was many, many times faster than the PC Francesca used. Despite this, in the second round Francesca beat the professional American program, Mchess, and later drew with Cilkchess and Zugzwang (highly parallelized programs, running on fantastic hardware). Cilkchess was running on a 256-processor SGI machine (hosted at NASA), and Zugzwang ran on a Cray! Overall, Francesca was 12th out of 30 participants - a surprisingly good result.

 

Francesca in action

Francesca vs Mchess, WCCC 1999

MChess

Francesca

Move 45, Francesca (white) to play. Looks like white is in deep trouble.. what would you choose?

(Francesca played Re4, and went on to win the game 10 moves later!)