From 69f8b60dff67eff64a085351e5124f171cd0f343 Mon Sep 17 00:00:00 2001 From: Sander Land Date: Fri, 8 May 2020 17:06:59 +0200 Subject: [PATCH] fix teaching redo bug --- bots/engine_server.py | 1 + img/flaticon/next999.png | Bin 9258 -> 8343 bytes img/flaticon/previous999.png | Bin 9261 -> 6685 bytes katrain.py | 2 +- 4 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bots/engine_server.py b/bots/engine_server.py index b71d0cf..b008476 100644 --- a/bots/engine_server.py +++ b/bots/engine_server.py @@ -13,6 +13,7 @@ PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8587 ENGINE_SETTINGS = { "katago": "my/katago25", + # "katago": "KataGo/katago", "model": "KataGo/models/b15-1.3.2.txt.gz", "config": "KataGo/analysis_config.cfg", "max_visits": 50, diff --git a/img/flaticon/next999.png b/img/flaticon/next999.png index 0559fc262726c399f2ea17737eee978f588edfaf..c6bb8f677391557ad9ae2e76122276232081bcf7 100644 GIT binary patch literal 8343 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 literal 9258 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 diff --git a/img/flaticon/previous999.png b/img/flaticon/previous999.png index 214c2f9afd69f0824575b1efa57d489c5b92a599..9e27db20b6b48a848812986d9c1aaed9385070f6 100644 GIT binary patch literal 6685 zcmZ`eX*|?j)OQwUvP`2MyU8H+M8*=O5r(p*EKwNAQuZ~?M6!%5AxouFq-4Yp*^-)s zN4C;p8AEmzVaifOlk{HC^L}|hydUOw&pG!j_uT)v=bm#X*~ZFDR7ge$03d2%e&7fI zNC+YU77d3Jr{zw=0qt#c*a(2i4B=IG0f-Y%njbj~K*Tlx81Vq`A&D^s09^xs88-mP zHvy0gxy`oS2PcpomSzV4C`nV&g4l)-bEh)^;F{Nei0i62SxCgtEDoDsKA|^@s>;wm zlUo3g;#nLpvJW5lI(+`}^`)q`g?FzAf7vJ{=i7=2ya=_!<1_Q}P3xKmvkx7ryyf^f z*X!U_t4rKz4oz#v)Yew32ky^jjr8m+>S|O>naBRQ$+!$IY1;m!bAmWi#ULV!Vr~<6 zemV2w_?^!`*GO}HKQlf~{F;9~S3T;z{Ot2!p0-?(I?Gl`=Mcu9fjhKPG;s9VBNOMv z!sv3zrMesb-YS1$h<~Bzbyl4VWMh;z1>>8wyJUaP;*DeeX`~a|D49JOt1R;S5?XPlBzzh-bc`1S9{w(eo<|VYmug91J_^N^6e?Ae#-c6 zw-W8SRNhciA50Ni)0&XKm36+XtEjtyA?CM7cg-ZQ?{nE4!6r*-(d})~q|?&DF&sA?y)z|OL9m*#o zNHgf~-%@I$W@~+~ zqQ<0n1A3=FWOl|HKC=&;P8~Q^T24~=vvDh?k-{4wJQUQFW&Py)N;HJsO%{IDFnoFC z^I&fe`^WQuv-R(d<=%2~ci(MwWp1S3G&mHkSB#n(=PWqX-;Ki2ipwWwKA#}O6vzA= zEqXKlB0iRQh$Hl7VZQnG-^+zDS*TCtMUy_2rqnFk%;JfWL;Nii>!<*iu?Dq|0U8e)gQDnh68=x<($eOufzTV$J|}b7skgTVk;cS;CfPD<%ABVddQEDb_psq` zL0dj~&C|dx69-P;D!5=(K~fBZ#v^zb>Zb99ESx$2h&6`cn0n;iklD%RWE{}+=?r+@ zxG*YD08L?!WKD0=Qz;C}%J#^=u^*NQCnkx|IPf07s- z>OwT`iPCm>7rNSGgaHllFjE7lPK>`PcwJXZCEL;!daMm$Bj4mbZH9Cj2pKJ+=e(^Y zDIS8bOXh&?nv((;t1_}xTiD&G1ct;1{}m3gONHKbA{tFjlNNSUFraUdL%;GLSQ}|2 z-2Wj*o(!HajjC&If4sXLf)|uW1gF55;EnK{JQPD84hq06FfpiSoNLmYVg?*#SU)3f zehj{d17{0M^4uXc4F`7f{T|*KUvXxl7zvuxJWZ|%0|$QciuY1qErg*6;2ZrmRi~GY z{bGt?tZMt*i0)Vj+W^U-Pl9?xc#56U5bi4Im5W)%gZ2@(Vdi;y5?#7qJ_EGNSk@7s z)Xt^8!#fwwLdL2Wn}R=gA&9ciX#~ra(LA`B2FwQ$*=3$`F^2F1yX;)}Aw&S( z+L_8D(f3dkszI4EJ(e!U!a-tJ!S3{i7%bofU!JUP9<<(v%sT=3r3hfA%lb@B(#JV< zGT@{ukBl%;l)wnT^g9zPztVA_#w|IFI0bCV1mAQYNsp0&AmK(hCIJU}eY%5n*Ax_h zO|b&ob=j|iE^WR!1F%Fa>*5Yz7_*hldX6+O_13;-Mwh2}86K5ucGM4V7B)%{z*RUI z4kw|bObUkaP{b})tzI(^)mSg1ZK=9KByr2mh1TeBbdrE&U6%lvAyv^VyI~46?Xf76ad$xv z9l+opcW(+#H{8^Ti2rg%W$F}9aZHQMu(^IC{LHGY1c7qX@k3e)oMc(3>aMZS1d30h zPd%xMgsdlmrlw87_6cT;5UBMi6NQCFY*Aze9-=z=sCjva?jnPR%4S*mJ=DB3L}4_# zLUczSY96lliVzvducHbe5(Yp)k{M`#vc*sq182#Q`H<~{^jZ?~9+dz0oX8h5Q6a8O zA(>zobkhOM*ng|nGRBN)-3V7YNdvPU$$PZSFk{;wDoFz*h=v-2CyB}zzPv4 z6Y$fIK{N%TcmhQkqLeNKZLV5n>JrxkIOUt&I0|(zs`d;U*)fc`Hjnf9U|N&fBMp1;H9;k(ckh5 zt6?6~>CVj(_!Mu(h&uja0psx%B+e}F`=g{t1G$kIA2&7+AmoZ2ID`DF47o1Emx*U` zF_e^QlvKeUdft)%;%Po=rCD4qCU0viSSh3<7^)wH84Ki>Y;>def&e8GQuICu0|Wl% zl>-3?4P&J;OE4tn3~mRyfU&Fn$gxXY0YFMt1u~20c$+|0vp9I6-3+CbPYX2q@Q|Pu zQqmw#5ah9XL;@j}#}SP}_`J*~NH-SL?)*WB@d8#&L!0ctqOBp+QQQ0%h=P>k`vDNU zv;#yqN`fcb3c*S{8#L-@3N#*rYWpD5;G+&`NDWd*zt2&fv7(+|l=?~X*ALGW9^gUdVW9j`!3i};g5TQ~ZY5se$5La0*NA%u@Tz!9RI1naEDb_(Qr0w*F+sWjfK zonehL4qw^Fcy-v;=tbEj;MepS!TFj+wop@{W+4hL0#@rb9sk6UDiX?E7-3UpB6I&d z^rhPf*q6Jw_Dw{F0%Ho`c-=Fdc88`T#6V4inIy}}xwHe!7y-^hmPFdP_sR|b_x=akw`|>4V3N}>D!Fd!zMeMEyqi8%1Jj9p95A=L zm`x`!o8~cy%a2WDihe=!D*Hh}a2(0gUMiXhsw!a% z5=f#o!H+BQJkUk3LKbnk)=cNvva=-O8Xo){%(J9DHK-t=h@f;QM;8VongSfpx%5bj zC+Z*@t!&k@S)N=^q8FM`CaIHP>)!8e$(dSowHp zxR_abi2*N@x@BPXz;LH1HiS=a}r5y}4B=LmFa6x9x5L?7i z5q#hlTBHiKr5X{vkdBYO84%)8WFUVg0sei-QugsZs${ zV3*%V|C7-__#O+4`1w}7+^IYd&Auu(Zd!gNCTAnQsOu~g7GTQ zzM9l`9)_1b8kAJqFc%HsBGn+g^pM24J`ms{*i8X>5&~)5U0jpAXf*J9!3x1kp^f!T zePdglC1Zu4MUh9oo0v@ouvq@R?LpqhvP%>v8fbt0U8aLoaTf~;+#h)HEcr~jG)n@( zc(i&vjq2utF4+%=`d_nOvMO95i~l{Dr3Pr>2pV+%NGI9vVm86!c)32Gs-0--E)Tnc z)(5FVzZgcuQ^mFdrU|)?M7&6;mwkUAv^4S;4F7;s9Po;MStRr<1yHsaZ~}6n_48Qp zX+l$HCTP9KKrmJx@zkZn&k7?Lk(w%B{z8ItC++(c(BPYcjCeGcErJIX-%70ddIy4B zOutB>FWfg(>x3sc9~zT;L@m-#34p!jk3v=+Y=+RVA$ZGIzN-?D02snj;=7IEb&^qR zyX+__CW{2KK7D=krz5o_rEO?1R0Vgof-bf|1Y_A@Gz7B=X5_Iu(77A7p^L|SQzkW4ZWCZvHn)DjkHd;MoVPc(K*BVkngSXzIh<1Ihz@q@ zJRWw5ifJD9x`Al03Kh*@!HOr`(ImRqI5e44ORvwaXop8fr5!CxH|IKA9mvCV1r2Uigum|RzAv>vYO;(Zt1xx0Xo{<)R zxCOzm+1af-?ClaCj0N#0*Hh>dG8!~h!4z6R7h59&e0HA>4Ag_LySDbV4^O5`!$XNL ztjTU=g)GAuYH#(4ZFQ6!M+?T{?_JMsW`*p9wnqPJl2T!dN42EEz;aOn_&D79&GDG@ z0>-Jw0;_cJENz%aG^5`8_1E1{B~iz2|6 zz7cxF@JzmGaq8m0+Z+Z#*(m~w>atfTrs6$& z){0yz47UE%RjFeQ<-A062EnJN)6qBdj(_T7&F4_m3)Z_yrSt6^U8e8*z^tLw}O; zw(hK7($eVG&im2X4{|5BZ=GHmjv##%|Nbqk;RbcoGcR>I;>BtzZE0ZW_t=rAMtPXh zKPL#K=>E~o>FGkFrJ_r#Jf%0AOBeZ$`^)}piw$xq5uNnD|Gn=ITmJUlT@6Y3DG{Cg zw@7jLw)fh)<4)hwl51zeq$GTv%q*KzwW)l-`S011K)BjEvHEJ&c(%5lNjaL%wVNy| zWOZ~uz3DsP86iEW-OZ0i9`)RsI4#05Vd+^#*bu6YFP{(O8;|S#w%)LEIYNgd+6Pp(nWRV`>~bazFXX| zjVxz%7iQVsJ2|q|Pg7%F{#=>sbSRsXyL?sb>F?uXlg-vYO9z*pZuz5HHYa_#WZJJ| zb?EiG*%iy~FSnz4zL}(odS}W^1n*gdVYOYgrD6Mz70V-bI6EtK|JzHsNUhMM`Ya19 zZR%JcdgMYZo*mjOlHZ#mlUq|)3To$j)|IuD%`EN<;s4P+PH|=_KZg<~W z!@C&jq`CN!EvFsJW9;R5&yb(|>Vmpj$yRU9ihqedy5=~1yE_bhqPvze%0B_N@qO4q z-OfkvW}h7{fS3PVdHJ+LV9C#^29~T&7he&a(WhlU?0vz{yI}X79i9KZS3UR7X&FP^ zsbV`?iK$O~qF)8he$IO2XL!SJ2cV^)rJ<&w zt){uxUUL^&dly-2x2lE)SwmxD`Th6*BM=yT%Gc}M|1WT@#N8SSNUvM43-+Rgxrcg! ku&^+aZ;=0)lkOp&q~K8RoY{RckO^3rSRHt1>~`UQ06AL6djJ3c literal 9261 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 diff --git a/katrain.py b/katrain.py index ca3ccfa..3414af7 100644 --- a/katrain.py +++ b/katrain.py @@ -91,7 +91,7 @@ class KaTrainGui(BoxLayout): # AI and Trainer/auto-undo handlers cn = self.game.current_node auto_undo = cn.player and "undo" in self.controls.player_mode(cn.player) - if auto_undo and cn.analysis_ready and cn.parent and cn.parent.analysis_ready: + if auto_undo and cn.analysis_ready and cn.parent and cn.parent.analysis_ready and not cn.children and not self.game.ended: self.game.analyze_undo(cn, self.config("trainer")) # not via message loop if cn.analysis_ready and "ai" in self.controls.player_mode(cn.next_player).lower() and not cn.children and not self.game.ended and not (auto_undo and cn.auto_undo is None): self._do_ai_move(cn) # cn mismatch stops this if undo fired. avoid message loop here or fires repeatedly.