Jump to content

BML - Markup language for Full Disclosure


Recommended Posts

Are people still using this? I'm working on three systems at once: my gadget heavy, ultra-artificial 2/1, tangerine club, and revision club.

 

One thing I've noticed is that the parser does NOT accept lowercase letters in copy - paste procedures. Second, and kind of more importantly, it only allows me to use two variables. Is that deliberate? It seems sort of arbitrary.

COPY major_raise
   2\X 6-9 hcps, 3 or 4 !\Xs.    
   2N ART. SLAM. Jacoby 2NT. 15+ hcps, 4+ !\Xs.
       3C ART. RESPONSE. A singleton or void in !cs.
       3D ART. RESPONSE. A singleton or void in !ds.
       3\X ART. RESPONSE. 14+ hcps and a 6+ !\X suit.  No side shortness.
       3\Y ART. RESPONSE. A singleton or void in !ss.
       3N ART. RESPONSE. 14+ hcps and exactly 5 trumps.  No side shortness.
       4C ART. RESPONSE. A 5 card !cs suit with 2 of the top 3 honors.
       4D ART. RESPONSE. A 5 card !ds suit with 2 of the top 3 honors. 
   3C ART. INV. Limit raise, 9-11 points.  Either 3 !\Xs w side shortness, or 4 without.
       3D  ART. ASK. Asks responder to describe his hand.
           3\X ART. RESPONSE. Responder holds 4!\Xs and no side shortness.
           3\Y ART. RESPONSE. Responder holds 3!\Xs and a void.
               3N ART. ASK. Location of the void?
                   4C ART. RESPONSE. Void in !cs.
                   4D ART. RESPONSE. Void in !ds.
                   4\X ART. RESPONSE. Void in !\Ys. Opener may sign off here.
           3N ART. RESPONSE. Singleton is !\Ys.
           4C ART. RESPONSE. Singleton in !cs.
           4D ART. RESPONSE. Singleton in !ds.
       3\X TP. To sign off.    
       4\X TP. To sign off.
       1STEP ART. SLAM.  Kickback 1430. 
       4N    
   3D ART. GF. Limit raise, 9-11 points with 4 trumps and a side shortness.
       3\X ART. ASK. Opener inquires about responder's feature.
           3\Y ART. RESPONSE. Responder holds a void.
               3N ART. ASK. What void, partner?
                   4C ART. RESPONSE. Void in !cs.
                   4D ART. RESPONSE. Void in !ds.
                   4\X ART. RESPONSE. Void in !\Ys. Opener may sign off here.
                   1STEP ART. SLAM.  Kickback 1430.
           3N ART. RESPONSE. Singleton is !\Ys.
           4C ART. RESPONSE. Singleton in !cs.
           4D ART. RESPONSE. Singleton in !ds. 
               4\X TP. Opener signs off.
               1STEP ART. SLAM.  Kickback 1430.
       4\X TP. NAT. Sign off.
       1STEP ART. SLAM.  Kickback 1430. 
   3\X ART. INV. Exactly 4 !\Xs, but fewer than 6 points.
   3\Y ART. GF. 12-15 points, 4+ !\Xs, and a concealed splinter.
       3N ART. ASK. Where is your shortness?
           4C ART. RESPONSE. !c singleton or void.
           4D ART. RESPONSE. !d singleton or void.
           4\X ART. RESPONSE. !\Y singleton or void.
           1STEP ART. SLAM.  Kickback 1430.
       4\X TP. Sign off.
       1STEP ASK. Kickback 1430. 
   4C ART. GF. 12-15 points, 4+ !\Xs, a balanced hand and 2 of the top 3 trumps, or 5 trumps to the A or K. 
   4D ART. GF. 12-15 points, 4+ !\Xs, a balanced hand and any lesser trump holding.
   4\X ART. TP. Fast Arrival. 5 trumps, less than 6 hcp, no outside controls.
ENDCOPY

 

That's my major raise structure, which is pretty simple - X and Y is fine, but M and m produce gibberish in the bss files. As do x and y - they have to be capital. I can accomplish most anything with two variables and step commands, but when I introduce interference it may get nasty.

Link to comment
Share on other sites

Hi!

 

Not sure if people are using it. I use it myself and actually haven't posted the last update I made. Could you post the "code" above but in a code snippet block so that I can see the indentation? Glad to see that people are posting errors and suggestions on improvements!

 

I am not sure that you can use variables in the "bid" section, but I haven't tried it. By bid section I mean the first two (usually) characters of a line:

 

3\X Support and shortness in \Xs

 

Not sure the "3\X" part above works? I'll check it out.

Link to comment
Share on other sites

I fixed the above so that you can see the indents. Python's not my first language, but I can more-or-less read your code, and it looks like the variables are loaded into an array, so there shouldn't be a limit, and yet...

 

But the above works - at least the programming side of it does. I have to iron out the logic a bit so that my RCK_KICKBACK procedure can be launched from within it, and so spades works completely. I may not be able to do the former without some kind of command structure within bml, so I may learn me some python and alter the source a bit, if I have your permission. If I come up with anything useful I'll share it with you.

 

It's a great timesaver as it is.

Link to comment
Share on other sites

Hi:

Thanks for the software bml to bss. It works fine and I had converted my bidding system to bml format.

I splitted my file into many bml files: OpenTable.bml, NormalBids.bml, 1M_raise.bml, 2NT.bml, 2C.bml....., then I create a content file named my system, use "INCLUDE" command to load all these bml files.

It worked fine, I like it very much.

 

But a problem in open seat(1 2 3 4) : In bidedit.exe of BBO, I can define open seats & VULs. Because some open bids rely on the seat and VULs. For example, open 2H in 1 2 seat is different from 3 or 4 seat, and it's response of 2NT have different meanings.

 

I tried it like this:

2S-(P);
2N Ogust
(P)-2S-(P);
2N Ogust
P-(P)-2S-(P);
2N ASK. Asking for short suit
(P)-P-(P)-2S-(P);
2N ASK. Asking for short

 

But when I converted to bss file, only 1 2S open bid.

Can you give me some advice?

Link to comment
Share on other sites

Hi:

Thanks for the software bml to bss. It works fine and I had converted my bidding system to bml format.

I splitted my file into many bml files: OpenTable.bml, NormalBids.bml, 1M_raise.bml, 2NT.bml, 2C.bml....., then I create a content file named my system, use "INCLUDE" command to load all these bml files.

It worked fine, I like it very much.

 

But a problem in open seat(1 2 3 4) : In bidedit.exe of BBO, I can define open seats & VULs. Because some open bids rely on the seat and VULs. For example, open 2H in 1 2 seat is different from 3 or 4 seat, and it's response of 2NT have different meanings.

 

I tried it like this:

2S-(P);
2N Ogust
(P)-2S-(P);
2N Ogust
P-(P)-2S-(P);
2N ASK. Asking for short suit
(P)-P-(P)-2S-(P);
2N ASK. Asking for short

 

But when I converted to bss file, only 1 2S open bid.

Can you give me some advice?

 

 

I'm not an expert, but the way I was planning on handling that was to go into the bss files when I'm done and use regular expressions to alter the YNNNNN=305 or whatever parts of the bidding lines, which I think indicate seat and vulnerability.

Link to comment
Share on other sites

I'm not an expert, but the way I was planning on handling that was to go into the bss files when I'm done and use regular expressions to alter the YNNNNN=305 or whatever parts of the bidding lines, which I think indicate seat and vulnerability.

 

Thanks to your reply. I analysed the structure of BSS file yestoday.

For example: 351C=NYYYYYY2484+!c

 

3 = seat(0:Any 1: 1 2:2 3:3 4:4 5:1 or 2 6:3 or 4)

5 = Vul (0 :Any 1:None Vul 2:Only We Vul 3:Only They Vul 4:Both Vul 5:We not Vul 6:We Vul 7: They not Vul 8:They Vul)

 

NYYYYYY = Artificial(Y or N),Possible Outcomes(Y or N):Clubs, Diamons, Hearts, Spades, Notrump, Defend undoubled.

248:

2 = Disposition

4 = min length

8 = max length

 

4+!c = bid describe: 4+

 

I want to create them use bml2bss.exe , not manually. Hope the author of the software can support this.

Link to comment
Share on other sites

Thanks to your reply. I analysed the structure of BSS file yestoday.

For example: 351C=NYYYYYY2484+!c

 

3 = seat(0:Any 1: 1 2:2 3:3 4:4 5:1 or 2 6:3 or 4)

5 = Vul (0 :Any 1:None Vul 2:Only We Vul 3:Only They Vul 4:Both Vul 5:We not Vul 6:We Vul 7: They not Vul 8:They Vul)

 

NYYYYYY = Artificial(Y or N),Possible Outcomes(Y or N):Clubs, Diamons, Hearts, Spades, Notrump, Defend undoubled.

248:

2 = Disposition

4 = min length

8 = max length

 

4+!c = bid describe: 4+

 

I want to create them use bml2bss.exe , not manually. Hope the author of the software can support this.

 

Thanks! That's a huge help.

 

 

My problem is figuring out a way to make Blackwood into a file that my 2/1 can read on the bbo server, since if I put the copy/paste into the file itself, each line adds about 20k to the overall size, and I haven't even gotten to the king ask, or void showing, or things like that - just the ace asking and third round followups. I may end up having to make a different one for each major, since it accepts arguments right now (/X is for the trump major, and /Y is for the other major) which is fine for bml, but bss doesn't work like that.

 

Minorwood is no big deal - it's not called in a million places the way RKC is from the majors, at least not in my system. And there are certain times when 4N is a keycard ask, and others where it's a cuebid denying a control in the next highest suit. Ugh.

 

I will finish this - I will have a complex FD file that describes my whole system and doesn't drop you off at the three level as soon as a trump is established. Even if I have to dick around with the source code to do it.

Link to comment
Share on other sites

  • 2 weeks later...

Pleased to see some new people using BML :) I have made some small changes which I haven't uploaded yet (including variables, which I think may be useful). I'm thinking of spending some time soon to improve BML and the bml2bss program; I will take your suggestions into consideration.

 

I may not be able to do the former without some kind of command structure within bml, so I may learn me some python and alter the source a bit, if I have your permission. If I come up with anything useful I'll share it with you.

 

If you do something useful, please share it. You are free to modify the source code, but please do not release it. I do not consider BML finished, and releasing it here on the forum is sort of a beta test :) It will be released as open source/free software in some way.

 

Hi:

Thanks for the software bml to bss. It works fine and I had converted my bidding system to bml format.

I splitted my file into many bml files: OpenTable.bml, NormalBids.bml, 1M_raise.bml, 2NT.bml, 2C.bml....., then I create a content file named my system, use "INCLUDE" command to load all these bml files.

It worked fine, I like it very much.

 

But a problem in open seat(1 2 3 4) : In bidedit.exe of BBO, I can define open seats & VULs. Because some open bids rely on the seat and VULs. For example, open 2H in 1 2 seat is different from 3 or 4 seat, and it's response of 2NT have different meanings.

 

I tried it like this:

2S-(P);
2N Ogust
(P)-2S-(P);
2N Ogust
P-(P)-2S-(P);
2N ASK. Asking for short suit
(P)-P-(P)-2S-(P);
2N ASK. Asking for short

 

But when I converted to bss file, only 1 2S open bid.

Can you give me some advice?

 

Yes, you can change the position and vulnerability in BML. The default is that position and vulnerability does not matter. However you can specify the position and or vulnerability for a specific bid/sequence, just as in bidedit. However it seems that I've forgotten to write about it in the manual, will fix on next update. For now, here's how you do it:

 

2S; pos=12
2N Ogust
2S; pos=34
ASK. Asking for short

 

To define a position, somewhere in the definition of the bid write "pos=" directly followed by a number. 0 is any position (the default), 1, 2, 3 or 4 corresponds to those positions, 12 is first or second seat, 34 is third or fourth seat. You can not use other combinations, since BSS does not support these.

 

To define the vulnerability, you write "vul=" directly followed by a combination of two letters. The first letter represents if we are vulnerable and the second letter represents if they are vulnerable. The letters can be Y (yes), N (no) or 0 (does not matter). The default is 00. In a system where you open mini no trump when not vulnerable you could use something like:

 

1N; 10-12 balanced vul=N0
1N; 14-16 balanced vul=Y0

 

Thanks to your reply. I analysed the structure of BSS file yestoday.

For example: 351C=NYYYYYY2484+!c

 

3 = seat(0:Any 1: 1 2:2 3:3 4:4 5:1 or 2 6:3 or 4)

5 = Vul (0 :Any 1:None Vul 2:Only We Vul 3:Only They Vul 4:Both Vul 5:We not Vul 6:We Vul 7: They not Vul 8:They Vul)

 

NYYYYYY = Artificial(Y or N),Possible Outcomes(Y or N):Clubs, Diamons, Hearts, Spades, Notrump, Defend undoubled.

248:

2 = Disposition

4 = min length

8 = max length

 

4+!c = bid describe: 4+

 

I want to create them use bml2bss.exe , not manually. Hope the author of the software can support this.

 

I was thinking about including support in BML for possible outcomes and max/min-length originally. The reason why I did not was because I thought the BBO implementation of it looked ugly (it's usually nicer to just write your own description of what the bid means). I also wasn't quite sure of the best way to implement this in the BML syntax. One of the main design goals of BML is making it easy to write and easy to read.

 

Thanks! That's a huge help.

 

 

My problem is figuring out a way to make Blackwood into a file that my 2/1 can read on the bbo server, since if I put the copy/paste into the file itself, each line adds about 20k to the overall size, and I haven't even gotten to the king ask, or void showing, or things like that - just the ace asking and third round followups. I may end up having to make a different one for each major, since it accepts arguments right now (/X is for the trump major, and /Y is for the other major) which is fine for bml, but bss doesn't work like that.

 

Minorwood is no big deal - it's not called in a million places the way RKC is from the majors, at least not in my system. And there are certain times when 4N is a keycard ask, and others where it's a cuebid denying a control in the next highest suit. Ugh.

 

I will finish this - I will have a complex FD file that describes my whole system and doesn't drop you off at the three level as soon as a trump is established. Even if I have to dick around with the source code to do it.

 

It would be great if BSS supported conventions like these, but I do not think it does (at least not writing your own) :( I've thought about some way to make it easier to add more general conventions like Blackwood to BML, but even if I did all it would do would be to write a lot of stuff into the BSS file, so that file would still be big.

Link to comment
Share on other sites

Are people still using this? I'm working on three systems at once: my gadget heavy, ultra-artificial 2/1, tangerine club, and revision club.

 

One thing I've noticed is that the parser does NOT accept lowercase letters in copy - paste procedures. Second, and kind of more importantly, it only allows me to use two variables. Is that deliberate? It seems sort of arbitrary.

A lot of code

 

That's my major raise structure, which is pretty simple - X and Y is fine, but M and m produce gibberish in the bss files. As do x and y - they have to be capital. I can accomplish most anything with two variables and step commands, but when I introduce interference it may get nasty.

 

I tried your example and it works fine. I also tried using more "variables" (I like your approach of using a backslash before the variable name) and there was no problems. Here's the BML file I used:

 

Major raise test
Major raises according to ColdCrayon

COPY major_raise
   2\X 6-9 hcps, 3 or 4 !\Xs. \M and \m
   2N ART. SLAM. Jacoby 2NT. 15+ hcps, 4+ !\Xs.
       3C ART. RESPONSE. A singleton or void in !cs.
       3D ART. RESPONSE. A singleton or void in !ds.
       3\X ART. RESPONSE. 14+ hcps and a 6+ !\X suit.  No side shortness.
       3\Y ART. RESPONSE. A singleton or void in !\Ys.
       3N ART. RESPONSE. 14+ hcps and exactly 5 trumps.  No side shortness.
       4C ART. RESPONSE. A 5 card !cs suit with 2 of the top 3 honors.
       4D ART. RESPONSE. A 5 card !ds suit with 2 of the top 3 honors. 
   3C ART. INV. Limit raise, 9-11 points.  Either 3 !\Xs w side shortness, or 4 without.
       3D  ART. ASK. Asks responder to describe his hand.
           3\X ART. RESPONSE. Responder holds 4!\Xs and no side shortness.
           3\Y ART. RESPONSE. Responder holds 3!\Xs and a void.
               3N ART. ASK. Location of the void?
                   4C ART. RESPONSE. Void in !cs.
                   4D ART. RESPONSE. Void in !ds.
                   4\X ART. RESPONSE. Void in !\Ys. Opener may sign off here.
           3N ART. RESPONSE. Singleton is !\Ys.
           4C ART. RESPONSE. Singleton in !cs.
           4D ART. RESPONSE. Singleton in !ds.
       3\X TP. To sign off.    
       4\X TP. To sign off.
       1STEP ART. SLAM.  Kickback 1430. 
       4N    
   3D ART. GF. Limit raise, 9-11 points with 4 trumps and a side shortness.
       3\X ART. ASK. Opener inquires about responder's feature.
           3\Y ART. RESPONSE. Responder holds a void.
               3N ART. ASK. What void, partner?
                   4C ART. RESPONSE. Void in !cs.
                   4D ART. RESPONSE. Void in !ds.
                   4\X ART. RESPONSE. Void in !\Ys. Opener may sign off here.
                   1STEP ART. SLAM.  Kickback 1430.
           3N ART. RESPONSE. Singleton is !\Ys.
           4C ART. RESPONSE. Singleton in !cs.
           4D ART. RESPONSE. Singleton in !ds. 
               4\X TP. Opener signs off.
               1STEP ART. SLAM.  Kickback 1430.
       4\X TP. NAT. Sign off.
       1STEP ART. SLAM.  Kickback 1430. 
   3\X ART. INV. Exactly 4 !\Xs, but fewer than 6 points.
   3\Y ART. GF. 12-15 points, 4+ !\Xs, and a concealed splinter.
       3N ART. ASK. Where is your shortness?
           4C ART. RESPONSE. !c singleton or void.
           4D ART. RESPONSE. !d singleton or void.
           4\X ART. RESPONSE. !\Y singleton or void.
           1STEP ART. SLAM.  Kickback 1430.
       4\X TP. Sign off.
       1STEP ASK. Kickback 1430. 
   4C ART. GF. 12-15 points, 4+ !\Xs, a balanced hand and 2 of the top 3 trumps, or 5 trumps to the A or K. 
   4D ART. GF. 12-15 points, 4+ !\Xs, a balanced hand and any lesser trump holding.
   4\X ART. TP. Fast Arrival. 5 trumps, less than 6 hcp, no outside controls.
ENDCOPY

1h; 5+
PASTE major_raise \X=h \Y=s \M=test1 \m=test2

Link to comment
Share on other sites

And now a new version of BML has been uploaded, download it from here.

 

If you haven't used positions (now called "seat" instead) or vulnerability (which you probably haven't, since I forgot to include it in the manual), old BML files should still work, I think.

Link to comment
Share on other sites

And now a new version of BML has been uploaded, download it from here.

 

If you haven't used positions (now called "seat" instead) or vulnerability (which you probably haven't, since I forgot to include it in the manual), old BML files should still work, I think.

 

Ah, exciting! I'm going to try it out now.

Link to comment
Share on other sites

COPY RKC_4NT_Module
4N Roman Keycard Blackwood for !\X
5c 4 or 1 keycards of 5
5d 3 or 0 keycards of 5
5h 2 keycards without Q of !\X
5s 2 keycards with Q of !\X
5N even number of keycards and a useful void
6\X Odd number of keycards and void in higher suit
6\Y undefined
6c Odd number of keycards and void in !c
6d Odd number of keycards and void in !d
6h Odd number of keycards and void in !h
ENDCOPY

      PASTE RKC_4NT_Module \X=C \Y=dhs

Is this the best way to define this?

It would be useful if there would be some kind of conditional structure in bml.

Like:

COPY RKC_4NT_Module
4N Roman Keycard Blackwood for !\X
5c 4 or 1 keycards of 5
5d 3 or 0 keycards of 5
5h 2 keycards without Q of !\X
5s 2 keycards with Q of !\X
5N even number of keycards and a useful void
IF \X=C THEN 
6\X Odd number of keycards and void in higher suit
FI
IF \X=D THEN 
6c Odd number of keycards and void in !c
6\X Odd number of keycards and void in higher suit
FI
IF \X=H THEN 
6c Odd number of keycards and void in !c
6d Odd number of keycards and void in !d
6\X Odd number of keycards and void in higher suit
FI
IF \X=S THEN 
6c Odd number of keycards and void in !c
6d Odd number of keycards and void in !d
6h Odd number of keycards and void in !h
FI
ENDCOPY

Link to comment
Share on other sites

Is this the best way to define this?

It would be useful if there would be some kind of conditional structure in bml.

Like:

....

 

There aren't any IFs in BML at present, but you can get a lot out of just using variables.

 

I don't have my RKC module anymore, but it's easy enough to rewrite - it basically worked like this:

PASTE RKC_1430 \X=H \Y=S // \X is the trump, \Y is the other major.

COPY RKC_1430
4H SLAM. RKC 1430.
5C ABR. 1 or 4 Keycards.
	5D ASK.  Q!\X?
		5\X ABR. No.  
		5\Y ABR. Yes, with a side king in \Y.
		5N ABR. Yes, but no side-suit king.  Shows at least one 3rd-round control.
               		6\X SO. To play.
               		6C ASK. Must have all 5 keycards. Grand-slam try. Bid 7\X if 3rd-round control is in !c, otherwise, sign off in 6\X.
                   			6\X SO. To play.
  							7\X SO. To play.
               		6D ASK. Must have all 5 keycards. Grand-slam try. Bid 7\X if 3rd-round control in !d, otherwise, sign off in 6\X.
                   			6\X SO. To play.
                   			7\X SO. To play.
               		6\Y ASK. Must have all 5 keycards. Grand-slam try. Bid 7\X if 3rd-round control in !\Y, otherwise sign off in 6\X.
  							6\X SO. To play.
                   			7\X SO. To play.
	6C ABR. Yes, with king of !c. Denies K!\X.
	6D ABR. Yes, with K!d.  Denies K!\X or K!c.
	6\X SO. Yes, but no outside king or 3rd-round control. To play.
etc etc.
ENDCOPY

 

Then for 5D 0 or 3, you'd have a structure really similar to the above, but you wouldn't be able to deny the queen below the 6 level.

 

This is how I used to have it set up before I switched to kickback, which is a lot trickier. Anyway, the thing to keep in mind is that BML does not care what order you put your lines in, so you can have 6H defined before 5S, and vice-versa. The only problem with the above code is the 6\Y Grand-slam try - since Spades are the other major, you'll have it asking for a third round control BEYOND 6H, which is the point of no return. I had some line in there like "Must have all 5 keycards and not be beyond 6\X." As long as you don't mind that, you can use the whole structure for the void showing, the king asks, etc.

Link to comment
Share on other sites

Is this the best way to define this?

 

Seems pretty good. Smart move with the \Y as undefined :) Altough you could use the brand new !SUIT variable, like this:

 

COPY RKC_4NT_Module
4N Roman Keycard Blackwood for !\X
5c 4 or 1 keycards of 5
5d 3 or 0 keycards of 5
5h 2 keycards without Q of !\X
5s 2 keycards with Q of !\X
5N even number of keycards and a useful void
6\X Odd number of keycards and void in higher suit
6\Y undefined
6cdh Odd number of keycards and void in !SUIT
ENDCOPY

      PASTE RKC_4NT_Module \X=C \Y=dhs

 

It would be useful if there would be some kind of conditional structure in bml.

 

I like the idea. I'll see what I can do.

 

 

Also ColdCrayon, I now understand what you meant by not be able to use copy/paste arguments in lowercase. This is only true if you use them in replacement for the bid (they were not intended for this, it is sort of a "bug gone into feature" thing). This is because bids are automatically converted to uppercase. It should be pretty easy to fix (they can be converted at a later stage), I'll see what I can do about it.

Link to comment
Share on other sites

Also ColdCrayon, I now understand what you meant by not be able to use copy/paste arguments in lowercase. This is only true if you use them in replacement for the bid (they were not intended for this, it is sort of a "bug gone into feature" thing). This is because bids are automatically converted to uppercase. It should be pretty easy to fix (they can be converted at a later stage), I'll see what I can do about it.

 

Ah, okay, now it makes perfect sense.

Link to comment
Share on other sites

  • 5 weeks later...

Kungsgeten, your BML seems great. Suggestions

As well as a BML->BSS it would be useful to have a BSS -> BML program[*]Then you could offer BML to BBO as an alternative to BSS. With automatic interconversion, BBO could allow members to use either format

 

Yes, reverse engineering would be nice, making a BML file from FD.

 

Later you could write conversion programs to HTML and WBF system-card format

 

It would be nice not to lose comments. That happens now when you convert to FD and publish using downagain's upload.

http://bridge.downagain.be/FD/public.php

 

OK OK yes I know: If you put a broom up your arse, you could also sweep the floor :)

Let's do that! Let's assume that the ressources are available, to enhance the parts of BBO that deal with Bidding systems development and training.

Requirements:


  •  
  • Capture explanations at the table. When playing or practising bidding online, capture explanations at the table and store in systemfile. The explanations are to be accepted/modified (see below).
  • History. When playing or practising bidding, make a cross-reference between the resulting lin file and the system. Reviewing at later stage can help remembering system. This feature can also be the fundament for statistics. Make it possible to save comments related to each deal/auction.
  • Review. Incorporate a review feature, similar to Windows Word that allows accept/reject of PD's suggestions. When changes are accepted, audit trail should be made so that changes can be tracked. The idea is to support commitment to changes.
  • Quiz. Run a bidding tool in a "quiz mode", exercising those auctions that tend to me hard to remember. Selecting auctions could be based on the auction being marked as tricky, or it could be based on historical data, that is, let the tool present bids that have not occured during online training or play.
  • Challenge the Champs. Prepare lin files with hands bid (and played) by great players for bidding pratice or play. Save result as described above.
     

 

Thanks Kungsgeten! I like BML.

Link to comment
Share on other sites

This:

5 card majors, 4c!d and 15-17NT
COPY COMP_Module 
(D) test
p to play, 6c!h
R transfer !h, will play in suit responder
(2H) test
D competitive
2N relay
3c to play
3d to play
2s to play  (guessing partners suit)
4D transfer !s
 4h test
4s to play (guessing partners suit)
ENDCOPY
2D; ART. Multi Weak !h or !s, GF !c or !d, SF !h or !s, 22-23, 24-25
PASTE COMP_Module

Results in:

*00{//48}=NYYYYYY
005=NYYYYYY008card majors, 4c!d and 15-17NT
002D=YYYYYYY008Multi Weak !h or !s, GF !c or !d, SF !h or !s, 22-23, 24-25
002DD=NYYYYYYtest
002DDP=NYYYYYYto play, 6c!h
002DDR=NYYYYYYtransfer !h, will play in suit responder
002DP2H=NYYYYYY008test
002DP2HD=NYYYYYYcompetitive
002DP2HP2N=NYYYYYY0relay
002DP2HP3C=NYYYYYY008to play
002DP2HP3D=NYYYYYY008to play
002DP2HP2S=NYYYYYY008to play  (guessing partners suit)
002DP2HP4D=NYYYYYY008transfer !s
002DP2HP4DP4H=NYYYYYY008test
002DP2HP4S=NYYYYYY008to play (guessing partners suit)

A Pass is inserted in some bidding sequence (see before 2H)

 

Remark: It would actually be good if not competitive modules could be copied into competitive sequences.

E.g: 1C-(D)-1H = transfer spades & then copy not competitive 1C-1S followup module.

This could be done by always requiring brackets for competitive bids. If no brackets are found then insert a pass?

 

Maybe this is somehow intended by the above reported "issue" :) ?

Link to comment
Share on other sites

It would be nice not to lose comments. That happens now when you convert to FD and publish using downagain's upload.

http://bridge.downag...e/FD/public.php

What do you mean by comments? Do you mean comments started with // ? In that case, those are not parsed when converting to BSS, so the BSS file does not know about them.

 

kgr: A problem I can see in the BML you posted is that you only have one "header row" describing the system. There should be two rows; the first sets the name of the system and the second gives a description. To always require parantheses when the opponents bid might be a good idea! Right now I'm working on a website designed for bid training, but I'll look into it later. Here's how I would (probably) write the code you posted:

 

Short club
5 card majors, 4c!d and 15-17NT

COPY COMP_Module 
(D) test
p to play, 6c!h
R transfer !h, will play in suit responder
(2H) test
D competitive
2N relay
3c to play
3d to play
2s to play  (guessing partners suit)
4D transfer !s
 (P) // I guessed there should be a pass here
   4h test
4s to play (guessing partners suit)
ENDCOPY
2D; ART. Multi Weak !h or !s, GF !c or !d, SF !h or !s, 22-23, 24-25
PASTE COMP_Module

Link to comment
Share on other sites

What do you mean by comments? Do you mean comments started with // ? In that case, those are not parsed when converting to BSS, so the BSS file does not know about them.

 

Yes of course, please disregard. I was mixing up BSS and BML.

Link to comment
Share on other sites

kgr: A problem I can see in the BML you posted is that you only have one "header row" describing the system. There should be two rows; the first sets the name of the system and the second gives a description. To always require parantheses when the opponents bid might be a good idea! Right now I'm working on a website designed for bid training, but I'll look into it later. Here's how I would (probably) write the code you posted:

..

here is complete in and output:

Input:

Test
5 card majors, 4c!d and 15-17NT
COPY COMP_Module 
(D) test
p to play, 6c!h
R transfer !h, will play in suit responder
(2H) test
D competitive
2N relay
3c to play
3d to play
2s to play  (guessing partners suit)
4D transfer !s
 4h test
4s to play (guessing partners suit)
ENDCOPY
2D; ART. Multi Weak !h or !s, GF !c or !d, SF !h or !s, 22-23, 24-25
PASTE COMP_Module

Output:

*00{Test}=NYYYYYY5 card majors, 4c!d and 15-17NT
002D=YYYYYYY008Multi Weak !h or !s, GF !c or !d, SF !h or !s, 22-23, 24-25
002DD=NYYYYYYtest
002DDP=NYYYYYYto play, 6c!h
002DDR=NYYYYYYtransfer !h, will play in suit responder
002DP2H=NYYYYYY008test
002DP2HD=NYYYYYYcompetitive
002DP2HP2N=NYYYYYY0relay
002DP2HP3C=NYYYYYY008to play
002DP2HP3D=NYYYYYY008to play
002DP2HP2S=NYYYYYY008to play  (guessing partners suit)
002DP2HP4D=NYYYYYY008transfer !s
002DP2HP4DP4H=NYYYYYY008test
002DP2HP4S=NYYYYYY008to play (guessing partners suit)

Link to comment
Share on other sites

Hello Kungsgeten,

The reason for the issue reported in my previous post is:

- _contested is set to False when ';' in bid

- copies are set apart until paste, but '(' are already removed.

=> <a paste of a contested auction after an initial bid containing ";"> does not work because the program will not know it is contested.

Note: It works if I include the contested overcall immediately after the initial bid iso in the COPY section.

Suggestion:

It would be ideal if there would be a way to switch off the contested flag in the bml language. F.i. add a parameter in the COPY command (NO_CONTESTED). This could then insert 'P' for the definitions in this COPY section instead of assuming that it is still contested.

I could then COPY the same RKC module (with NO_CONTESTED) after a contested or an uncontested auction.

Thanks,

Koen

Link to comment
Share on other sites

  • 4 weeks later...

I love this application Kungsgeten! Thanks a lot for developing and sharing this useful program. You are genius!

 

One suggestion: There is a step function in the BML and that if i understand it correctly, it include Notrump as a step. It would be great if we have another step function which exclude notrump (or even a specified suit as a step). That will be useful as some conventions (such as Walsh Asking Bids) might exclude notrump as step when answering about 1st and 2nd round controls. If that function is available, the length of the coding could be reduced quite a bit i imagine.

 

For example, if STEPXN is available,

 

COPY Walsh Asking

1STEPXN Shows no control

2STEPXN Shows second round control (Singleton or KQ)

3STEPXN Shows first round control (Void or A)

4STEPXN Shows absolute control

NSTEPXN Cheapest call in notrump. Promises the King of the Asking Bid suit at least doublteon

ENDCOPY

 

 

Thanks again for the great stuff ! :rolleyes:

Link to comment
Share on other sites

Thanks for the kind words and great suggestion shinkit! I'll see if I can add this to the next update. I got inspired from your post and have thoughts about adding more "generalized" (cant find the word) bids instead of absolute bids. For instance this syntax could be used:

 

1H;
NS   Any new suit (would match 1S, 2C, 2D)
NS-  New suit at the same level (would match 1S)
NS+  New suit at the level above, but no jump shift (would match 2C and 2D)
JS   Any suited jump shift, !suit variable could be used to show the suit symbol
JS+  Jump shift to the level directly above the bid, in this case only 2S would be matched
JS++ Jump shift to the level two higher than the bid, in this case 3C and 3D would be matched
DJS  Any double jump shift, as above !suit could be used
SR   Simple raise, in this case 2H
DR   Double raise
TR   Triple raise
NT   cheapest nt bid available (1NT in this case)
JNT  jumping nt (2NT in this case)

 

With this syntax, a natural 4 card major opening system could use something like this for all the openings of one of a suit:

COPY one_suit_response
NS-  Forcing               // 1/1
NT   Negative, 6-11 hcp
NS+  Game forcing          // 2/1 GF
SR   4+!suit, 6-9 hcp
DR   4+!suit, 10-12 hcp
TR   PRE.
JNT  4+!suit, game forcing        // Jacoby 2NT
JS+  Weak Jump Shift, 6!suit, 3-5 hcp
JS++ Limit Jump Shift, 6!suit, 9-11 hcp
DJS  4+ support, void !suit  // Void splinter
ENDCOPY

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...