BarbuWin

Latest version: v1.7 (13th December 2003)

What is it?

A combined Barbu client/server application for Windows operating systems (Windows 98 or later, at least until proven otherwise).

No, not that. What is Barbu?

Try investigating Andy and Shireen's page here. They have the rules, plus news, views and online goings-on.

How do I use it?

Installation

Download the executable barbuwin.exe. There's just one file, that's all you need. There's no fancy Install program; you have to do it by hand. I suggest you copy it to a sub-directory in Program Files and then put a shortcut on your desktop. (Don't put the program itself on the desktop---when you run it in Server mode it'll write a bunch of files in the directory where the .exe is stored.)

The default size of the BarbuWin window is 900 x 700. The display fits relatively snugly in this size, so make sure your screen resolution is set to something at least as big.

Playing a game

To play a game you will need: The Server must tell the Clients the IP address of his or her machine, and the Port number on which they are serving. If you don't know your IP address, or it changes every time you connect, you can discover it by running "winipcfg" or "ipconfig" from a DOS prompt. Alternatively, you might be able to obtain it here, but beware: this page doesn't cope very well with web proxies, and might tell you the IP address of one of your ISP's machines.

Serving

To run the program in Server mode: If all goes well, you should see the message "Serving..." in your chat box (at the bottom of the BarbuWin window). The player who is Serving automatically sits South.

Logging in as a Client

To connect to a Server: The message "Searching for server..." should appear in your chat box. If nothing bad happens, it will be followed by "your handle has joined the table". If instead you get "socket error 10057" that means no server is listening at the specified location---check the IP address and Port and try again.

Once you have successfully joined a table, you can sit in any open chair (West, North or East). When all four players have taken their seats, the first hand will be dealt and the game will begin.

The Play

The interface ought to be simple to master, particularly for anyone who has played (for example) OKbridge. The rules are more-or-less the standard English version, with a couple of variations. In particular:

The Undo feature

The "Undo" menu command can be used by any player to cancel the last play or call. It works no matter what the state of the game; it doesn't matter if the last call ended the auction or the last play ended the hand. It should be reserved for mis-clicks, not grotesque absurdities! The server writes a "carousel" of the previous four game states to disk---up to one whole round of play can be undone.

Saving, Opening and Hand Records

The Server can Save the game state at any time using the "File->Save" command. If real life impinges and a player has to leave before the end of the game, it can be Saved and finished at a later time. When restarting, the Server should first Serve, then Open the saved game and wait for the Clients to log in. When they sit down, the game will be resumed.

The Server can also generate a text file containing the hand records, namely the deals themselves and the complete log of calls, plays and scores. The "File->Save Hand Records" command will record all completed deals.

These three commands are only available to the Server.

Randomness

The value of the Random Seed entered by the Server before the game begins determines the set of hands to be played. Unless it's zero, the same integer will always produce the same set of twenty-eight hands and the same initial dealer. On the other hand, if it is zero, a random random seed (1ddmmyyrr, where ddmmyy is the date and rr are random digits) will be selected.

What to do if things go wrong

In the event that a Client loses his or her connection, play will be suspended. They should Exit BarbuWin, do whatever is necessary to restore the Internet (reboot, reconnect...), restart BarbuWin and log back in to the Server. When they retake their seat, play will be resumed.

If the Server loses their connection, Clients will see the message "Connection closed". In this event, the Server should quit BarbuWin, reconenct to the Internet, restart and reserve. Clients will have to restart and reconnect. The last game state can always be recovered by the Server from the file "temp.barbu" in the same directory as barbuwin.exe (that is, even in the oh-so-very-unlikely event the Server crashes, all is not lost).

Credits

Thanks to Neil, Andy, Shireen and Lionel for help testing the software.

BarbuWin was written using the (mostly) excellent lcc-win32 free C compiler for Windows.

The GPL card images are available here.

Source code

You can download the source code as a zipped archive. Please note that only games played with the original version (at least as far as scoring is concerned) count towards the ladder competitions.

Contacting me

My email address is graham [dot] hazel [at] gmail [dot] com