# This is an example bridge movie. # It is only 2 boards long and is # intended primarily as a tutorial # on how to use the movie software, # in particular, how to build movie # data files. # Lines beginning with # are comments, # so all the stuff you've seen so far # is not going to go in the movie. # The movie file consists of two main # parts: the preamble, and the pages. # The preamble comes first and continues # until the first PAGE directive. It # sets a bunch of useful parameters and # optionally tells the movie about the # boards we are going to see. # We are going to have a scorecard to # see at the end of the movie, so we # tell the program which boards we are # going to use, in this case, boards 1 through 2. # We could have just said BOARDS 2, but this is # more clear. If we had wanted 3 boards, we'd # say BOARDS 1 3 BOARDS 1 2 # This is the list of opponents we'll face: OPPONENTS 3 3 # (We were seeded, so we faced pair 3 both boards.) # These are the two boards we'll play. North is up. BOARD 1 K10 Q943 1032 KJ52 QJ5 76 62 K1087 QJ9764 85 A6 Q8743 A98432 AJ5 AK 109 # note the void heart suit in East's hand BOARD 2 Q84 854 AK98 QJ10 102 AKJ953 Q932 --- QJ10 7532 5432 987 76 AKJ10xx 64 AK6 # We are going to be playing at matchpoints, # which is the default. We need to specify # the top on the board; 12 is the default. TOP 25 # That's it for the preamble. The program # assumes that the entrance page is called # "Welcome". This needn't be; you can start # with any page you like, but Welcome is nice, # so we'll start with it. PAGE Welcome # HTML is fine. Here we put up a header. # The title of this page is "Welcome". # If we wanted to change that, we'd use # TITLE; we'll do that for the next page.

A Matchpoint Mini-Movie

# Ordinary text: this text will be part # of the page directly. The only thing # the program does that isn't obvious # with regular text is to make blank # lines separate paragraphs, so you don't # need to use the

HTML construct. Welcome back. This is a two-board mini-movie built as an example for the movie software. You are playing a decent matchpoint game at a sectional barometer game. You start off at table three, being a seeded pair. Your first-round opponents are perhaps the best pair in the area. They have many agreements and are a sound partnership. # Note the hyperlink in the text. Your partner is capable and sound, but not imaginative. Your methods are 15-17 notrumps, 2/1 forcing to game, and many gadgets. I'l try to mention them when they come up. The boards are preduplicated; this is a barometer, so we start only ten minutes after posted gametime, perhaps a record. # We are done with this page and want the player # to click on the "I'm Ready" button to start play. # The NEXT directive sets up a button for the player # to use to get to the next page, but it doesn't # give him any choices. This is the most complicated # form of the NEXT directive. It is being used in # its variant form, which is denoted NEXT*. The # variant forms of directives all do different things, # but generally do less than the normal form. In this # case, the variant form doesn't allow the player access # to the scorecard; NEXT Board 1 would allow him to # check his scores on the way. Since there are no scores, # there's no point to letting him look. This NEXT directive # also has an optional argument. Normally, the button says # "Next Hand" in it, but for the first board, we want to # say something different, this time "I'm Ready". Many # directives take optional arguments, but rarely do they # need them. Optional arguments are always in curly braces # and are separated by commas if there are more than one of them. # NEXT only allows one such argument, so commas are not needed. NEXT*{I'm Ready} Board 1 # About to start board 1. I find that some sort # of separator helps make the file more readable, # so I do this: # #----------Board 1--------------- # # PAGE indicates that the Welcome page is over and # Board 1 starts. Note that the name of the page # is the same as the string on the previous NEXT # directive. This won't always be the case, of # course, but some NEXT or CHOICE will normally # point to each page other than the first. PAGE Board 1 # TITLE in this form, names the page (Board 1) # and writes out a header saying the same thing. TITLE Board 1 You deal with no one vulnerable and pick up # This is the first instance of BML macros. # This one (and the CARD macro, which we shall # see presently) is the most common one. It # prints a hand in horizontal format (that's # what the first H means). Note the blank # line: the hand is on its own line in a separate # paragraph. It need not be; we could put it in # with the text, and shall with other macros. HHAND(A98432,AJ5,AK,109). What is your call? # The CHOICE directive prints out a set of # buttons with tags. The first parameter # to CHOICE is the name of the page to which # to go if the user answers. In this case, # it is page 1A. The remaining parameters # are a set of answers and strings to be # printed. The first choice is for the user # to bid 1S; the string we put next to the button # is a typeset 1S bid. That's the CARD macro in # action; it typesets bids or cards as one would # expect. There's no reason to call the answer # anything in particular, but the user will never # see it, so use something that is easy to remember # and work with. The second choice is 1NT, but # there's no reason to typeset that, so the answer # tag and the string are the same. This need not # be so. Note the backslashes at the end of the # lines. CHOICE goes for one line, but you can # continue lines by ending them with a backslash. # This command is the same as saying # CHOICE 1A 1S CARD(1S) 1NT 1NT Other Punt # but I find it more readable with each choice # on a separate line. CHOICE 1A \ 1S CARD(1S) \ 1NT 1NT \ Other Punt # Next page PAGE 1A # TITLE* names the page, but doesn't print the # big bold text. Note that this applies to any # of the cases below. TITLE* Board 1 # Since this is an "answer" page, the bulk # of the text is generated in response to each # answer. The answers link to CASEs that match # the tags on the CHOICE directive. CASE 1S HHAND(A98432,AJ5,AK,109) # Above, we've told him the hand again, since # he might not remember. Since the bidding # continued, we are just going to pose him # the next problem in bidding format. # The BID2 directive displays two-player bidding. # The first two arguments are the players (You and # Partner); the remainder are bids. BID2 will end # if someone passes, but since neither of you did, # it requires an END tag to let it know that you # are on to other stuff. Note that one of the bids # is in quotes. Spaces normally end bids, but sometimes # you want to add some other stuff, for example, in this # case, a footnote flag. FOOTNOTE puts a little raised # 1 (the string in parentheses) next to the bid. The # line after the bidding is a reference with the explanation. # Note that you need not expressly typeset (via CARD) the # bids in a bidding directive; it knows to do that. BID2 You Partner 1S "1NT FOOTNOTE(1)" ? END FOOTNOTE(1) Forcing for one round, but never game forcing What now? CHOICE 1B \ 2C CARD(2C) \ 2D CARD(2D) \ 2S CARD(2S) \ 2NT 2NT \ 3S CARD(3S) CASE 1NT # There are no more choices once he's opened 1NT, # so, we can show him the hand. BOARD 1 does that. BOARD 1 BID2 You Partner 1NT 2C 2S 3NT Pass # BID2 ended with the pass. # In the text, the SK is typeset via the CARD macro. The play is not trivial at 3NT, but the best you can do is to win the diamond lead, cash the CARD(SK), and take a heart finesse. When that wins, you knock out the spade stopper and win the diamond return. You eventually come to nine tricks. # This is how you fill out the scorecard. SCORE # also prints the score for the player. The # format is SCORE board contract declarer result score matchpoints # He'll get to see: 3NT +3 400 now and more if he checks the # scorecard. SCORE 1 3NT S +3 +400 8 # The normal form of the NEXT directive allows him to # check the scorecard. He'll learn that he got a 32% # result for playing 3NT. NEXT Board 2 CASE Other The Dodd Gambit is not allowed at bridge, I'm afraid. Why don't you try again? # Pages can be in any order you like. NEXT* Board 1 PAGE 1B TITLE* Board 1 # The bidding began 1S-1NT; ? # we are going to end the hand # here and tell him his result # so we can show the whole hand. BOARD 1 CASE 2C BID2 You Partner 1S 1NT! 2C 2S 3S 4S Pass The play is not completely straightforward, but you score up ten tricks after unimaginative defense. SCORE 1 4S S +4 +420 18 CASE 2D BID2 You Partner 1S 1NT! 2D 2S 3S 4S Pass The play is not completely straightforward, but you score up ten tricks after unimaginative defense. SCORE 1 4S S +4 +420 18 CASE 2S CARD(2S) ends the auction. You don't break a sweat making four. # This was worth 4.5 matchpoints; the + is interpreted # as one might expect. SCORE 1 2S S +4 +170 4+ CASE 2NT Partner bids the 3rd. He realizes that the rest of the field will be in CARD(4S) from your side, so he takes a risk to make ten tricks. He gets a club lead and wins the diamond continuation, then plays a spade towards dummy. West splits, so partner wins and takes an immediate heart finesse. That holds, and when he gives up a spade, West thinks for awhile and continues clubs, severing communication with dummy. He loses a heart trick in the end, but manages a lucky ten tricks for a fine score. SCORE 1 3NT N +4 +430 22 CASE 3S Partner raises you to game and you reach the normal spot. You make ten tricks after normal play. SCORE 1 4S S +4 +420 18 # Since all the cases end here, we can # put some trailing stuff after the cases, # but we need to tell the program that the # cases are over. ENDCASE NEXT Board 2 # #----------Board 2----------------- # PAGE Board 2 TITLE Board 2 # This is going to be a defensive problem, # so we draw only the two visible hands, # in this case, the West and North hands. # We don't rotate the board (because we # did in the diagram in the preamble) so # we don't need to use the variant form of BOARD. BOARD{N,W} 2 # Four-player bidding uses the BIDDING directive; # the first four arguments are players. It ends # with All Pass or three passes, but note that # "All Pass" has a space, so it needs to be quoted. BIDDING CHO RHO You LHO 2S 3H Pass 4H "All Pass" # note the
HTML tags; they break lines T1: CARD(S10)-x-J-x
T2: CARD(SA)-x-x-x
T3: CARD(SK)-CARD(HJ)-? What do you play? CHOICE 2A \ H CARD(H) \ D CARD(D) \ C CARD(C) PAGE 2A TITLE* Board 2 BOARD 2 CASE H You overruff, exit something, and declarer draws trumps and claims. Note that if you don't overruff, you have the potential of two natural trump tricks. SCORE 2 4H E +4 -420 10 CASE D What a super play. Twist and squirm as he might, declarer can't now avoid the loss of two trump tricks; you always have that valuable fourth club as an exit. Well defended. SCORE 2 4H E -1 +50 22+ CASE C Those low clubs look like junk, but they are gold. Declarer cashes a high heart and curses out loud. He's not known for his speedy play, but this is ridiculous; he's in the tank for at least eight minutes. He cashes a high diamond and goes back into the tank when he sees your ten. He emerges and plays like lightning: another high diamond, a diamond ruff, three rounds of clubs and a low heart, endplaying you to lead away from your trump trick. Oh, well. He chuckles and says, "I think you could have beaten me by pitching a diamond." Partner shakes his head patronizingly and says, "partner, keep winners, throw losers, and leave the rest to me." SCORE 2 4H E +4 -420 10 ENDCASE NEXT Good Bye PAGE Good Bye TITLE Good Bye Thanks for playing again. I hope you enjoyed these hands. This is the only place they'll be, so you get a bonus for learning how to use the movie software. Thanks to Rolf Küehn and an author from an old Bridge World for inspiring Board 2. # NEXT still gives them a chance to see their # scorecard. It points back to this page, # so we tell them good bye on the button. NEXT{Good Bye} Good Bye