This is one of several user guides on specific topics. The directory for all user guides is here.
The Deal Recipe Maker is used to specify the cards in a deal. You specify cards using the values or codes shown in bold print in the key at the bottom of the Recipe Maker panel. These codes are described in detail in another guide. Here, we just want to show you a couple of quick examples to get you started.
Before configuring the recipe, choose the dealer and vulnerability from the options on the left side of the page. Set Number of Deals to however many deals you want.
In the recipe, if you leave every hand blank and click “Generate Deal” then you will get a random deal in the Generated Deal panel. That’s because leaving all hands blank is actually a valid recipe that says, “give me any cards in any order.”
Let’s make a more interesting recipe. Let’s say we want to make a weak 2-bid in North, so he has a good 6-card spade suit; have East with low HCP so they are unlikely to overcall; and let’s give South some cards in North’s long suit, and decent HCP. West can have whatever HCP are left over:
After you have configured your recipe, click the “Generate Deal” button at the top of the Deal Recipe Maker panel to get a deal or multiple deals that conform to the cards you have specified. For the above recipe, I first get this in the Generated Deal panel:
That is certainly a viable 2-spade weak opener in North. East has puny HCP, South has some spades and nice cards in other suits, and West got whatever was left. Let me tell you about how I chose to define that recipe.
“KQXXXXB” in North’s spades told it to give two specific face cards, then any four spades. The “B” indicated I wanted no more cards after those six. The “B” is necessary if you want to restrict the length of a suit, because if you just end with blanks, the generator might still assign random cards to that hand if all the other hands already have 13 cards come dealing time.
I used “Z” and exact length specifications (ending in “B”) for all other suits in North to ensure that all North’s HCP were in spades. Z means spot cards with zero HCP (but could be a 10, as opposed to “S” spot cards, which exclude 10).
I made East puny by allowing it one face card in spades (“F” for any face card still available), and a specific low-point face card (“J”) in clubs. All other cards were “Z” snoozers. Poor, poor East. Notice that I was specific about East’s suit lengths, to avoid random high cards landing there.
I gave South three and only three random spades, an ace in hearts and another in diamonds, and any face card in clubs. I did not specify any other exact cards, nor did I specify the lengths of South’s hearts, diamonds, or clubs; this lets the generator fill out those suits.
I left West blank, subject to whatever the generator assigned that was not already claimed by or dealt to other hands.
What I didn’t show you, but what you can play with on your own, is that I actually clicked “Generate Deal” after first specifying only North’s hand. After seeing the resulting deal, I began working up East and South, clicking “Generate Deal” more times along the way to check my results, until I arrived at something I liked.
Writing up this process took a good fifteen or twenty minutes, including the part where I edit out the jokes and fiction I sometimes feel the urge to insert; just making the recipe, though, took less than a minute. Once you know the placeholders, you can make recipes very quickly.
This example also illustrates that, while you can be extremely precise and specify every single card if you need to, it is handy to be able to use placeholders to come up with a somewhat generic recipe, which can be the basis for many practice or instructional hands in which the cards you don’t specify are different each time you generate from that recipe.
You can save your recipe configurations to a file for later reuse by clicking the “Save Recipe” button at the bottom of the page.
If you generate more than one deal at a time, you will only see the last deal generated in the Generated Deal panel. However, all of your just-generated deals are in your browser’s memory and if you use the “Save PBN” or “Save LIN” button at the bottom of the page, all of your deals will be saved to a file.
You can also view each of the multiple deals by first saving the latest batch of deals to a Navigator.
Each time you click “Generate Deal” the program will discard previously-generated deals from memory, so be sure to save your deals to a file if you intend to do something with them outside of this program.
The buttons with letters and arrows are for rapidly changing recipe configurations. The “N-S” button swaps the North and South settings; “W-E” swaps the West and East settings; the swurvy-curvy arrow button moves each seat’s setting one place clockwise (North to East, East to South, etc.). This is handy for creating sets of recipes with similar conditions but with different starting points, as you might do if you are creating deals that you or your students would play from different seats.
For example, here’s our 2-spade weak opener recipe again:
After generating a deal and/or saving the recipe to a file, or whatever you intend to do with this recipe, you may then decide you want the same setup, but with North and South’s roles reversed. Click the N-S button to get:
Perfect, right? No, not quite. West may have a good hand for an overcall if South opens 2S. That happens in real life, but we want to practice without that overcall. Easy—just press W-E button to swap West and East:
In this case, where you wanted to swap more than two hands, you could have instead pressed the swurvy-curvy arrow button twice to get the same effect, rotating North down to South, East over to West, and South up to North. Either way, you’re just a click or two away from getting those hands where you want them.
Now you can generate deals and/or save this version of the recipe just as you did with the original.
You can of course do all such configuration changes by hand, one seat at a time. The swap/rotate buttons are there just to make those three common changes quick and easy.
The “(n-n)x” tucked into the placeholder codes legend of the Recipe Maker is a feature that helps you create recipes with a variable number of some placeholders. The legend notes at the top of the main Recipe Maker user guide give you a bit of an explanation and a couple of examples. Here’s a bit more background.
The Recipe Maker lets you be as specific or as general as you need to be when designing a deal, at least when it comes to the types of cards you want in each hand. The support for variable length suits, though, was at first somewhat limited. You could specify zero cards with VOID, or an exact length of a suit by placing a “B” after your fixed number of placeholders in that suit, or a minimum length for a variable-length suit by not placing a “B” after your placeholders.
That seemed to cover all the bases, right up until I started building out my collections of deal recipes, or cookbooks. Right away I encountered requirements such as “responder has 3+ spades” or “partner has fewer than 3 spades” or “partner has 5+ clubs and fewer than 4 of a major suit.”
“3+ spades” is easy to support if all you care about is suit length. You can just put “XXX” in spades, with no “B” to limit the length, and the generator will supply three or more cards if at all possible.
But for “fewer than” you encounter a problem. Sure, if it says “fewer than 4 spades” then you could make a recipe with “XXXB” in spades. The “B” limits the length to exactly three. The problem is that if you want to study or teach a variety of scenarios, you will also want to see that deal with zero spades, and one spade, and two spades (all the values less than four). And you could do that with the fixed recipe method—but you need four recipes, each with a different hard-wired number of spades.
Now, if you are extremely systematic and you would want those four recipes so you could always choose the exact one that suits you, then by all means, go ahead and make all four.
But what if you want just one recipe to express the length just the way it is expressed in words, and you want the generator to vary the number of spades, just so it always fits the requirement to give you fewer than four?
The (n-n)x randomizer construct lets you do that. Key it into a suit in the recipe, replacing both letter “n”s with integers, separated by a dash. After the closing parenthesis, key the placeholder that you want to randomize.
When you generate a deal from this recipe, the generator will randomly choose a number between your two integers, inclusive, and will replace the randomizer with the randomly-chosen number of the placeholder you have specified.
Here are some examples.
“Fewer than four of any card” in a suit is “(0-3)XB”. This will get either “B” or “XB” or “XXB” or “XXXB” each time you generate a deal from it.
“6+ cards” in a suit is “XXXXXX” (with no “B” so it can be more than 6) the old way, but now you could also use a randomizer: “(6-13)XB”. The randomizer can help if you find that the old method leaves you getting too many deals with too many cards in that suit. You can make sure you get six or more, but not 13, by using a smaller range: “(6-8)XB”.
Notice that I am putting “B” at the end of recipes that use randomizers. That’s because the randomizer is just a shorthand that will result in some random number of placeholders being passed to the generator behind the scenes; the generator will still put additional cards into a suit if you have not limited its length with a “B”.
So far I have just demonstrated randomizing the number of any type of card, specified with placeholder “X”. You can also randomize placeholders F, H, S, and Z, and you can include multiple randomizers in one suit.
“Up to 3 face cards and fewer than three zero-point spot cards” in a suit would require multiple recipes without the randomizer. With the randomizer, you can write that as:
“(0-3)F(0-2)ZB”
The above randomizer would result in a suit with from zero to five cards each time you generate a deal from it.
The more randomizers you use in a recipe, the more likely you are to specify some combination that can’t be fulfilled. The generator will not create an invalid deal, and it will not tell you that your recipe is invalid. So use this feature carefully and check your results often while building your recipes.