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:
- One player running the program in Server mode.
- Three players running the program in Client mode.
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:
- Start BarbuWin.
- Open the File->Setup... dialogue box.
- Check the box marked "Server".
- Enter a Port number, or leave the default.
- Enter a Random Seed, if desired (see below for an explanation).
- Enter your handle (ie name). The program won't let you leave this box blank.
- Click OK.
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:
- Start BarbuWin.
- Open the File->Setup... dialogue box.
- Check the box marked "Client".
- Enter the IP address of the Server. This must be in numerical (number.number.number.number) form. The default IP address is my home PC.
- Enter a Port number (or leave the default). This must be the same as the Port the server is using.
- Enter your handle.
- Click OK.
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.
- Choices of games and doubles are made through dialogue boxes which appear when it's your turn to call.
- Cards are played by clicking on them once. Illegal plays (revokes, non-overruffs at Trumps etc.) are ignored.
- The player whose name is underlined is on play; otherwise the colour depends on the business between you and that opponent: black for no business, red for doubled, magenta for redoubled.
- The number of compulsory doubles of declarer a player has still to make appears next to his or her name during the auction; during Dominoes, the number of cards each player has left in his or her hand is shown.
- At trick-taking games, the last trick is displayed in the bottom right hand corner of the window; at Dominoes, the last card played by an opponent (or blank, if they knocked) is kept in view next to their name.
The rules are more-or-less the standard English version, with a couple of variations. In particular:
- Each defender gets only one chance to double other players. No sandbagging.
- Passed out negative games are not played; instead the points are shared equally between defenders.
- The deal passes to the left each hand (rather than each boat being played separately).
- Scoring in Dominoes: +45, +20, +5, -5. Also not very English, but I think it's absurd to have the largest difference between 3rd and 4th places.
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