Back to Deal Top Page
Plane Dealing image

Deal 3.0

A brief history


D
eal was originally conceived in 1988 for bidding practice. I was a math graduate student just learning bridge and another grad student, Robin Pemantle, suggested a way to practice bidding. His idea was to have the computer deal out twenty or so hands, and then offer each hand up to you, randomly, for bidding. This way, you could bid all four hands in each of twenty deals, and, if you tried hard, you could avoid remembering which hand was which.

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 needed 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.

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 are:

The next version of Deal I've called "iDeal." It's a much changed beast, and could almost be called a general bridge programming environment. Currently, my progress here has stalled, but I'm planning on a GUI interface to the Deal.

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.

Update: August, 2007. I haven't worked on Deal much in a while.


Silhouette Thomas Andrews (deal@thomasoandrews.com) Copyright 1996-2005. Deal is covered by the GNU General Public License.

Plane Dealing graphic above created using POV-Ray.