Deal 3.1A brief history |
I mentioned that idea to my partner at the time, Nathan Glasser, and he wrote a program called bid, which is still available from the bridge archives.
The problem with bid was that it could not be used for practicing specific auctions. John Oswalt solved this in a rather crude fashion. His modification forced you to re-link your application each time you wrote a new query (in C).
After using this modified version for a while, I got frustrated and
wrote a very crude interpreter. It was a "stack-based" language
so I wouldn't have to write a parser. It was very much like the Unix "dc"
calculator, only without all the features. (That's a joke, but I guess
you wouldn't get it if you didn't know dc
.)
I could have used a fully interpreted language, like Perl, but for the types of simulations I was doing, I need very fast execution of the computation routines, and so implementing the core in an interpreted language was going to slow down the program too much.
In about 1992 I first stumble across the Tcl language. Immediately, I saw that I could use it in my dealer. Tcl was an interpreted language which had excellent support for extensibility via fast C routines. It turned out that Nathan's code did not easily fit into my new scheme, so I rewrote the dealer from scratch. I had my first version done quickly, and released the first public version (v0.5 I called it, in retrospect) in 1993. I announced it on rec.games.bridge in this post.
The next version (v1.0) was released about two years later, and basically cleaned up the query interface. In the haze of my memory, I can not recall what features were added, certainly "vectors" and "shape classes."
Version 2.0 uses new optimization methods, some of which were suggested to me by the very same Nathan Glasser. There are some other new features, including shape functions, customizable output formatting, and more built-in formats.
Version 3.0 was the next major release. Major changes were:
Deal got mentioned in the New York Times bridge column.
Version 3.1 was release in 2008, with Bo Haglund's double dummy solver built in, so you can call a 'deal::tricks' function to get double dummy data.
Starting with release 3.1.6, the source code is hosted at Google Code.
While Deal is a labor of love for me, it makes it easier to love the project if I get feedback which shows people are using Deal. Even if you tried Deal and did not like it, please let me know.
Thomas Andrews
(deal@thomasoandrews.com)
Copyright 1996-2010. Deal is covered by the
GNU General Public License.
Plane Dealing graphic above created using POV-Ray. |