ColdCrayon Posted June 28, 2012 Report Share Posted June 28, 2012 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. Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted June 30, 2012 Author Report Share Posted June 30, 2012 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. Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 2, 2012 Report Share Posted July 2, 2012 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. Quote Link to comment Share on other sites More sharing options...
chuanru Posted July 4, 2012 Report Share Posted July 4, 2012 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? Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 4, 2012 Report Share Posted July 4, 2012 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. Quote Link to comment Share on other sites More sharing options...
chuanru Posted July 5, 2012 Report Share Posted July 5, 2012 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 = Disposition4 = min length8 = 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. Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 5, 2012 Report Share Posted July 5, 2012 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 = Disposition4 = min length8 = 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. Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted July 19, 2012 Author Report Share Posted July 19, 2012 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 = Disposition4 = min length8 = 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. Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted July 19, 2012 Author Report Share Posted July 19, 2012 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 Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted July 19, 2012 Author Report Share Posted July 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 20, 2012 Report Share Posted July 20, 2012 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. Quote Link to comment Share on other sites More sharing options...
kgr Posted July 20, 2012 Report Share Posted July 20, 2012 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 Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 20, 2012 Report Share Posted July 20, 2012 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. Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted July 20, 2012 Author Report Share Posted July 20, 2012 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. Quote Link to comment Share on other sites More sharing options...
ColdCrayon Posted July 20, 2012 Report Share Posted July 20, 2012 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. Quote Link to comment Share on other sites More sharing options...
skaftij Posted August 19, 2012 Report Share Posted August 19, 2012 Kungsgeten, your BML seems great. SuggestionsAs 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. Quote Link to comment Share on other sites More sharing options...
kgr Posted August 23, 2012 Report Share Posted August 23, 2012 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_ModuleResults 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" :) ? Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted August 24, 2012 Author Report Share Posted August 24, 2012 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.phpWhat 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 Quote Link to comment Share on other sites More sharing options...
skaftij Posted August 24, 2012 Report Share Posted August 24, 2012 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. Quote Link to comment Share on other sites More sharing options...
kgr Posted August 27, 2012 Report Share Posted August 27, 2012 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) Quote Link to comment Share on other sites More sharing options...
kgr Posted August 30, 2012 Report Share Posted August 30, 2012 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 Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted September 1, 2012 Author Report Share Posted September 1, 2012 Thank you for the information on this issue! For the next update of BML I'll try to look into contested auctions. I haven't used that part of BML very much myself. Quote Link to comment Share on other sites More sharing options...
shingkit Posted September 26, 2012 Report Share Posted September 26, 2012 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 control2STEPXN Shows second round control (Singleton or KQ)3STEPXN Shows first round control (Void or A)4STEPXN Shows absolute controlNSTEPXN Cheapest call in notrump. Promises the King of the Asking Bid suit at least doublteonENDCOPY Thanks again for the great stuff ! :rolleyes: Quote Link to comment Share on other sites More sharing options...
Kungsgeten Posted September 27, 2012 Author Report Share Posted September 27, 2012 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 Quote Link to comment Share on other sites More sharing options...
kgr Posted September 30, 2012 Report Share Posted September 30, 2012 Is it possible in bml to use twice the same bid for opps.E.g:- when you have a different defense to 1NT when it is strong or when it is weak.- different defense if opps open 2D weak or 2D multi. Is it possible in bss? Quote Link to comment Share on other sites More sharing options...
Recommended Posts