It seems unbelievable to me how many bugs I introduced while converting
my "fooling around with Go concepts" code to GTP and towards the refbot
spec. It is not that GTP or refbot are themselves problematic, it is that I had
lots of assumptions built in that needed revision - leaving GTP and refbot
spec to the end was a bad idea, as others have pointed out before (my
favourite language provides implementations with read-eval-print loops,
so I didn't need GTP early on..).
To save future bot authors from this, I suggest to revise the refbot spec to
emphasize a "GTP early" approach, and to make the nature of AMAF
statistics slightly more explicit (see attachment).
Btw, wasn't there talk of putting the spec on a web page somewhere
(so we can more easily refer others to it), not to mention test harness
(gogui-twogtp serves well, though) and links to latest versions of
available rebot implementations?-)
Thanks to all those who are making Go programming easier and fun,
be it via papers, postings, services, specs, or tools!
Claus
PS. I also attach two examples of JrefBot 081016-2022 violating
superko (it is nice that not all the issues are in my own code!-)
begin 666 refbot-spec.txt
M#0HM+2TM6R!B;W0@:6UP;&5M96YT871I;VX@<W!E8VEF:6-A=&EO;B!=+2TM
M+0T*#0I4:&ES(&ES(&%N(&EN9F]R;6%L(&EM<&QE;65N=&%T:6]N('-P96-I
M9FEC871I;[EMAIL PROTECTED]&]C=6UE;[EMAIL
PROTECTED]('=R:71I;F<-"F$@<VEM<&QE($UO;G1E
M($-A<FQO($)O="!P<F]G<F%M+B @5&AE(&ED96$@:7,@=&[EMAIL PROTECTED];&[EMAIL
PROTECTED]
M;W0@;&EK90T*=&AI<R!I;B!!3ED@;&[EMAIL PROTECTED]('1E<W0@:[EMAIL PROTECTED]
M('!E<F9O<FUA;F-E("AA;[EMAIL PROTECTED];6ET>[EMAIL PROTECTED]@=7-E9"!A
M<R!A(&=E;F5R86P@;&[EMAIL PROTECTED])K(&)U="!I<R!A<R!M=6-H
M(&%B;W5T('1H90T*:6UP;&5M96YT871I;[EMAIL PROTECTED],@=&AE(&QA;F=U86=E+B @
M5&AI<R!S<&5C:69I8V%T:6]N(&%S<W5M97,@<V]M90T*:VYO=VQE9&=E(&]F
M(&=O(&%N9"!-;VYT92!#87)L;R!G;R!P<F]G<F%M<RX@("A)9B!Y;[EMAIL PROTECTED]&]N
M)W0@;&EK92!I="P-"G!L96%S92!W<FET92!A(&)E='1E<B!O;[EMAIL PROTECTED](&UE
M(2D-"@T*(" Q+B!-=7-T(&)E(&%B;&[EMAIL PROTECTED]&\@<&QA>2!C;VUP;&5T92!G86UE
M<R!F;W(@8V]M<')E:&5N<VEV92!C;VYF;W)M:71Y#0H@(" @('1E<W1I;F<Z
M#0H@(" @( T*(" @("!A(%1O(&9A8VEL:71A=&[EMAIL PROTECTED]&5S=&[EMAIL
PROTECTED]&5B=6=G
M:6YG+"!A;[EMAIL PROTECTED]<&5T:71I;VXL('1H92!B;W0@<VAO=6QD#0H@(" @(" @
M:6UP;&5M96YT(&$@;6EN:6UA;"!S=6)S970@;[EMAIL PROTECTED]&AE($=O(%1E>'[EMAIL
PROTECTED]')O
M=&]C;[EMAIL PROTECTED]"[EMAIL PROTECTED]<VEO;@T*(" @(" @(#(Z(&AT='
Z+R]W=W<N;'ES
M871O<BYL:74N<V4O?F=U;FYA<B]G=' O*2X-"@T*(" @(" @([EMAIL PROTECTED]&AE<F4@
M:7,@82!W:61E(')A;F=E(&]F('1O;VQS(&%V86EL86)L92!F;W(@1U10+6)A
M<V5D($=O#0H@(" @(" @("!P<F]G<F%M<RP@:6YC;'5D:6YG($=527,L(&EN
M=&5R86-T:79E+"!B871C:"!A;[EMAIL PROTECTED])O= T*(" @(" @(" @=&5S
M=&[EMAIL PROTECTED]@:7,@=V5L;"!W;W)T:"!K;F]W:6YG(&%B;W5T('1H97-E(&5A
M<FQY(&EN('EO=7(-"B @(" @(" @(&1E=F5L;W!M96YT(&5F9F]R=',L(&QO
M;F<@8F5F;W)E('EO=7(@8F]T(&ES(&9I;FES:&5D+B!9;W4-"B @(" @(" @
M(&]N;'D@;F5E9"!T;R!P<F]V:61E(&%N(&EN=&5R86-T:79E($=44"!C;VUM
M86YD;&EN92!I;G1E<F9A8V4N(%T-"@T*(" @("!B(%1H92!'5% @8V]M;6%N
M9',@=&[EMAIL PROTECTED]@:6UP;&[EMAIL PROTECTED])E('1H92 B<[EMAIL PROTECTED];6%N
M9',B#0H@(" @(" @<W5B<V5T("AG=' R('-P96,L(#8N,2D@<&QU<R R(&-O
M;6UA;F1S('-P96-I9FEC('1O('1H:7,@<F5F8F]T#0H@(" @(" @<W!E8R H
M<V5E([EMAIL PROTECTED];W<[EMAIL PROTECTED]@(" @(" @6R!)="!I<R!R96-O;6UE;F1E9"!T
M;R!U<[EMAIL PROTECTED]&AE('!L87EO=70@<V-O<FEN9R!C;V1E("[EMAIL
PROTECTED]@9F]R#0H@
M(" @(" @("!A('!A<G1I86P@:6UP;&5M96YT871I;VX@;V8@(F9I;F%L7W-C
M;W)E(B H9F%I;&EN9R!W:71H(")C86YN;W0-"B @(" @(" @('-C;W)E(B!I
M9B!T:&[EMAIL PROTECTED]<F0@<&]S:71I;VX@:7,@;F]T('-I;7!L92!E;[EMAIL PROTECTED]
M#0H-"B @,[EMAIL PROTECTED]@=&AE('!L87DM;W5T('!H87-E+"!T:&4@;6]V97,@;75S
M="!B92!C:&]S96X@:[EMAIL PROTECTED] B=6YI9F]R;6QY#0H@(" @(')A;F1O;2(@=V%Y
M(&)E='=E96X@;&5G86P@;6]V97,@=&AA="!D;R!N;[EMAIL PROTECTED];" Q('!O:6YT
M(&5Y97,@86YD#0H@(" @(&[EMAIL PROTECTED]&AE('-I;7!L92UK;R!R97-T<FEC=&EO
M;BX-"@T*(" @("!7:&5N(&$@;6]V92!I;B!T:&4@<&QA>2UO=70@:7,@;F]T
M('!O<W-I8FQE+"!A('!A<W,@:7,@9VEV96XN#0H-"B @,[EMAIL PROTECTED]&QA>2UO=71S
M('-T;W @869T97(@,B!C;VYS96-U=&EV92!P87-S(&UO=F5S+"!/4B!W:&5N
M($XJ3BHS#0H@(" @(&UO=F5S(&[EMAIL PROTECTED];B!C;VUP;&5T960L('=H97)E
M($X@:7,@=&AE('-I>F4@;[EMAIL PROTECTED]&AE(&)O87)D+B -"B @(" @4V\@:[EMAIL
PROTECTED]&AE
M(&)O87)D(&ES(#EX.2!T:&5N('1H92!G86UE(&ES('-T;[EMAIL PROTECTED](@
M#0H@(" @(#DJ.2HS([EMAIL PROTECTED],R ](#(T,R!M;W9E<RX-"@T*(" T+B!!(#$@
M<&]I;[EMAIL PROTECTED](&ES(&%N(&5M<'1Y('!O:6YT('-U<G)[EMAIL PROTECTED]@9G)I
M96YD;'D@<W1O;F5S#0H@(" @(&9O<B!T:&4@<VED92!T;R!M;W9E+B!)9B!T
M:&4@<&]I;G0@:6X@<75E<W1I;VX@:7,@;[EMAIL PROTECTED]&AE(&5D9V4@;W(-"B @(" @
M:[EMAIL PROTECTED]&AE(&-O<FYE<[EMAIL
PROTECTED]&AE<F4@;75S="!B92!.3R!D:6%G;VYA;&QY(&%D
M:F%C96YT(&5N96UY('-T;VYE<RX-"B @(" @[EMAIL PROTECTED]&AE('-T;VYE(&ES($Y/
M5"!O;B!A;[EMAIL PROTECTED] H=VAE<[EMAIL
PROTECTED]&AE(&-O<FYE<B!I<R!A;B!E9&=E*2P-
M"B @(" @=&AE<F4@;75S="!B92!N;R!M;W)E('1H86X@;VYE(&1I86=O;F%L
M(&5N96UY('-T;VYE+B @#0H-"B @(" @6R!4:&ES(&1E9FEN:71I;[EMAIL PROTECTED]
M<R!A;&[EMAIL PROTECTED]&AE('=A>2!B86-K('1O($=O8F)[EMAIL
PROTECTED],@9&5S8W)I8F5D#0H@
M(" @(" @:6X@(DUO;G1E+4-A<FQO($=O([EMAIL PROTECTED])U96=M86YN+" Q.3DS(%T@
M#0H-"B @[EMAIL PROTECTED]<FEN9R!I<R!#:&EN97-E('-C;W)I;F<N("!7:&5N(&$@
M<&QA>[EMAIL PROTECTED]<&QE=&5S+"!T:&[EMAIL PROTECTED]@(" @('-C;W)E(&ES('1A:V5N
M(&%C8V]U;G1I;F<@9F]R(&MO;[EMAIL PROTECTED]('-T871I<W1I8W,@87)E(&ME<'0N
M(" -"@T*(" V+B!38V]R:6YG(&9O<B!G86UE('[EMAIL PROTECTED]<R!!34%&("T@
M(F%L;"!M;W9E<R!A<R!F:7)S="(@*&-O;G-I9&5R:6YG#0H@(" @(&%L;"!M
M;W9E<R!P;&[EMAIL PROTECTED]'5R:6YG('!L87EO=71S(&%S('!O<W-I8FQE(&9I<G-T
M(&UO=F5S*3H-"B @(" -"B @(" @82!3=&%T:7-T:6-S(&%R92!T86ME;B!O
M;B!M;W9E<R!P;&[EMAIL PROTECTED]'5R:6YG('1H92!P;&%Y+6]U=',N#0H@(" @( T*
M(" @("!B(%-T871I<W1I8W,@87)E('1A:V5N(&]N;'D@;VX@;6]V97,@=&AA
M="!A<F4@<&QA>65D(&)Y('1H92!S:61E( T*(" @(" @('1O(&UO=F4L(&]N
M;'D@:[EMAIL PROTECTED]&AE(&UO=F4@:6X@<75E<W1I;VX@:7,@8F5I;F<@<&QA>65D(&9O
M<B!T:&[EMAIL PROTECTED]@(" @(" @9FER<[EMAIL
PROTECTED]&EM92!I;B!T:&4@<&QA>[EMAIL PROTECTED]&)Y
M(&5I=&AE<B!S:61E*2!A;F0@;VYL>2!I9B!T:&4@;6]V92 -"B @(" @("!I
M<R!N;W0@;V-C=7!I960@:[EMAIL PROTECTED]&AE('!L87EO=70@<W1A<G1I;F<@<&]S:71I
M;VXN#0H@(" @(" -"B @(" @8R!3=&%T:7-T:6-S(&-O;G-I<W0@;[EMAIL PROTECTED]
M+VQO<W,@<F5C;W)D(&9O<B!E86-H(&]F('1H97-E(&UO=F5S+ T*(" @(" @
M(&UE86YI;F<@;G5M8F5R(&]F('=I;G,O;&]S<V5S('9S(&YU;6)E<B!O9B!H
M:[EMAIL PROTECTED]@(#<N(%1H92!M;W9E('=I=&@@=&AE(&AI9VAE<W0@<W1A=&ES
M=&[EMAIL PROTECTED](')A=&[EMAIL PROTECTED]'=I;B]L;W-S(&-O=6YT('9S#0H@("
@(&AI="!C
M;W5N="D@:7,@=&AE(&]N92!S96QE8W1E9"!F;W(@;6]V92!I;B!T:&[EMAIL PROTECTED]
M=6%L(&=A;64Z#0H@(" @( T*(" @("!A($EN('1H92!C87-E(&]F(&UO=F5S
M('=I=&@@979E;B!S8V]R97,@=&AE(&-H;VEC92!I<R!R86YD;VUL>0T*(" @
M(" @(&UA9&[EMAIL PROTECTED];B!T:&[EMAIL PROTECTED]@(" @(&(@4&%S<R!M;W9E<R!A
M<F4@;F5V97(@<[EMAIL PROTECTED],@=&AE(&9I;F%L(&[EMAIL PROTECTED]&\@<&QA>2!U
M;FQE<W,@#0H@(" @(" @;F\@;W1H97(@;F]N+65Y92!F:6QL:6YG(&UO=F4@
M:7,@<&]S<VEB;&4N#0H-"B @(" @8R!3=6EC:61E(&YO="!A;&QO=V5D(&EN
M('1H92!P;&%Y+6]U=',@;W(@:[EMAIL PROTECTED],@:70@<&QA>7,N(" -"B -"B @
M(" @9"!7:&5N('-E;&5C=&EN9R!M;W9E<R!T;R!P;&%Y(&EN('1H92!A8W1U
[EMAIL PROTECTED] H;F]T('!L87DM;W5T<RD-"B @(" @("!P;W-I=&EO;F%L('-U
M<&5R:V\@:7,@8VAE8VME9"!A;[EMAIL PROTECTED]&[EMAIL PROTECTED]@(" @(&[EMAIL
PROTECTED]@
M<W1A=',@9F]R(&$@;6]V92!W87,@;F5V97(@<V5E;B!I;B!T:&4@<&QA>2UO
M=71S+" H:&%S(&$-"B @(" @("!H:[EMAIL PROTECTED];G0@;V8@>F5R;RD@:70@:7,@
M:6=N;W)E9"!F;W(@;6]V92!S96QE8W1I;VXN(" -"@T*(" X+B!286YD;VT@
M;G5M8F5R(&=E;F5R871O<B!I<R!U;G-P96-I9FEE9" M('EO=7(@<')O9W)A
M;2!S:&]U;&0-"B @(" @<VEM<&QY('!A<W,@=&AE(")B;&%C:R!B;[EMAIL PROTECTED]('1E
M<[EMAIL PROTECTED]('!O<W-I8FQE(&%N(&]P=&EO;F%L#0H@(" @(&%D9&ET:6]N86P@
M=&5S="!W:&EC:"!C;VYS:7-T<R!O9B!L;VYG(&UA=&-H97,@8F5T=V5E;B!O
M=&AE<@T*(" @("!K;F]W;B!C;VYF;W)M:6YG(&)O=',N("!9;W5R('!R;V=R
M86T@<VAO=6QD('-C;W)E(&-L;W-E('1O(#4P)0T*(" @("!A9V%I;G-T(&]T
M:&5R(")P<F]P97)L>2!I;7!L96UE;G1E9"(@<')O9W)A;7,N#0H-"B @.2X@
M5'=O(')E9F)O="US<&5C:69I8R!G=' @8V]M;6%N9',@87)E('-U9V=E<W1E
M9"!T;R!F86-I;&ET871E#0H@(" @('1E<W1I;F<@86YD(&-O;7!A<FEN9R!M
M=6QT:7!L92!B;W1S('-I9&[EMAIL PROTECTED]@<VED92!U<VEN9R!G=' -"B @(" @8V]M
M;6%N9',N(" -"@T*(" @(" @<F5F+6YO9&5S("T^(')E='5R;B!T;W1A;"!M
M;W9E<R!E>&5C=71E9"!I;B!P;&%Y+6]U=',-"B @(" @(" @(" @("AI;F-L
M=61I;F<@8F]T:"!P87-S(&UO=F5S(&%T(&5N9"!O9B!E86-H('!L87DM;W5T
M+BD-"@T*(" @(" @<F5F+7-C;W)E("T^(')E='5R;B!T;W1A;"!W:[EMAIL PROTECTED])A
M8W1I;[EMAIL PROTECTED](&)L86-K+B @#0H-"B @(" @[EMAIL PROTECTED]:"!C;VUM86YD
M<R!R97!O<G0@<W1A=',@9G)O;2!L87-T(&=I=F5N(&=E;FUO=F4@<V5A<F-H
'[EMAIL PROTECTED]"@``
`
end
begin 666 two-33.sgf
M*#M&1ELT74-!6U541BTX74%06T=O1W5I5'=O1W1P.C$N,2XS75-:6SE=#0I+
M35LV+C5=4$);4VEM<&QE1V]=4%=;2G)E9D)O=%U$5%LR,# X+3$Q+3(P70T*
M0UM";&%C:R!C;VUM86YD.B!3:6UP;&5';RYE>&4@,C P, I7:&ET92!C;VUM
[EMAIL PROTECTED]<B!R969B;W1S+VIA=F%B
M;W0O:G)E9F=O+FIA<B R,# P"D)L86-K('9E<G-I;VXZ(# *5VAI=&[EMAIL PROTECTED]
M<VEO;CH@,[EMAIL PROTECTED],#$V+3(P,C(*4F5S=6QT6T)L86-K7%TZ(#\*4F5S=6QT6U=H
M:71E7%TZ(#\*2&[EMAIL PROTECTED](S+6QT"D1A=&4Z($YO=F5M8F5R(#(P+" R,# X
M(#8Z,S(Z-#<@[EMAIL PROTECTED]);9F5=.U=;9&1=.T);969=.U=;96)=.T);
M9F1=.U=;9&==.T);9&-=.U=;96-=.T);9&9=.U=;961=#0H[0EMC95T[5UMC
M9ET[0EMC9UT[5UMC9%T[0EMB9ET[5UMG9%T[0EMG95T[5UMH95T[0EMG8UT[
M5UMF8UT-"CM"6VAD73M76V)E73M"6V=D73M76V%F73M"6V-F73M76V=B73M"
M6VAF73M76V)H73M"6V-H73M76VAB70T*.T);86==.U=;:65=.T);:61=.U=;
M8F==.T);865=.U=;9F9=.T);:69=.U=;:&5=.T);:65=.U=;965=#0H[0EMA
M9ET[5UMG9UT[0EMH:%T[5UMH9UT[0EMI9UT[5UMI:%T[0EMG:%T[5UMF9UT[
M0EMI:5T[5UMF:%T-"CM"6VEH73M76V=I73M"6V9I73M76V5I73M"6V1H73M7
M6V1I73M"6V-I73M76V5G73M"6V=F73M76VAI70T*.T);9FE=.U=;9VE=*0T*
`
end
begin 666 twoWB3-7.sgf
M*#M&1ELT74-!6U541BTX74%06T=O1W5I5'=O1W1P.C$N,2XS75-:6SE=#0I+
M35LV+C5=4$);4VEM<&QE1V]=4%=;2G)E9D)O=%U$5%LR,# X+3$Q+3(R70T*
M0UM";&%C:R!C;VUM86YD.B!3:6UP;&5';RYE>&4@,C P, I7:&ET92!C;VUM
[EMAIL PROTECTED]<B!R969B;W1S+VIA=F%B
M;W0O:G)E9F=O+FIA<B R,# P"D)L86-K('9E<G-I;VXZ(# *5VAI=&[EMAIL PROTECTED]
M<VEO;CH@,[EMAIL PROTECTED],#$V+3(P,C(*4F5S=6QT6T)L86-K7%TZ(#\*4F5S=6QT6U=H
M:71E7%TZ(#\*2&[EMAIL PROTECTED](S+6QT"D1A=&4Z($YO=F5M8F5R(#(R+" R,# X
M(#$R.C T.C4R(%!-($=-5%T-"CM"6V5E73M76V1E73M"6V1F73M76V5F73M"
M6V9F73M76V5D73M"6V1D73M76V9E73M"6V5G73M76V5E70T*.T);9V5=.U=;
M8V5=.T);9V1=.U=;9F==.T);9V9=.U=;96-=.T);8F9=.U=;8V9=.T);8V==
M.U=;9&==#0H[0EME:%T[5UMD:%T[0EMC:%T[5UMB95T[0EMD:5T[5UMF:%T[
M0EMD9ET[5UMG8UT[0EMF8UT[5UMF8ET-"CM"6VAC73M76V)G73M"6V=B73M7
M6V1H73M"6V1G73M76V)H73M"6V5B73M76V%F73M"6V9A73M76V9I70T*.T);
M9VE=.U=;9VA=.T);:&A=.U=;:&==.T);9V==.U=;:&E=.T);:6A=.U=;:6E=
/.T);9VE=.U=;:&E=*0T*
`
end
_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/