From c902998fa09e0debeddfe80c604ec3ed29f729a6 Mon Sep 17 00:00:00 2001 From: BetaSteward <betasteward@gmail> Date: Tue, 22 Nov 2011 13:56:00 -0500 Subject: [PATCH] fixed monte carlo NPE's --- .../src/mage/player/ai/MCTSNode.java | 2 +- Mage.Server/plugins/mage-player-aimcts.jar | Bin 22510 -> 22515 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/MCTSNode.java b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/MCTSNode.java index 82dc47d2dc..5788c684ca 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/MCTSNode.java +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/MCTSNode.java @@ -271,7 +271,7 @@ public class MCTSNode { for (MCTSNode node: children) { // logger.info(state); // logger.info(node.stateValue); - if (node.stateValue == state) { + if (node.stateValue == state && node.action != null) { return node; } MCTSNode match = node.getMatchingState(state); diff --git a/Mage.Server/plugins/mage-player-aimcts.jar b/Mage.Server/plugins/mage-player-aimcts.jar index 7e274e6e37850231350bcd6594834cddbd3836e2..d3e362bd834b1ba74d29821e0c944531fe35c07c 100644 GIT binary patch delta 5602 zcmZvgWmJ@1yMXB~K~X?p=#cIqrMrg~P)a(79vBH7QiK79ZloI}1O{o491x_0p+lro z;`s8O@B4Aq*=y~6-TQv-_1tUk{qOo+gLzzoNvfxbjYEX-&uDS-OC)8*ZvG3A<a>Mr z+~YULKY%~M<o<^Z%9sRX_kkX{J{IZUj9fY0%$+|K21Y%+`T-{t^u6V-WA^v(8hh9W z3~T~S146T?`ZCN!iq9_z67vYAhge(GRoI2QhjHTmgcme>G#3_#^5wmuj0P1O<vUxJ zfAX#PJl6C%BxG+lI3&jL=bhB~sGWn**E5+=<U;Uo|Iy3QyLqH=+u<HD|APteZ9Ian zNG_=K!>u9%6ty)5wen6&zDw@6_TEBnA=^((t{C}4)U65kqNF=g`}G4MED0W#H&EtN zeweYI9D^2ZLz^4W^)*a7%gV2goxI8A_SsDNdiACFm<cvhuqSPBdscTV%m=6|d%P~F zwTf2YJ2)WVd#I6!P(3Pr$}l1pAEH3BT1?46EFe8P(jN#7l-4~MSAOwpJz83Qb<iq9 z2MYEf{CO>77TlIuGSFv`ujT8L4oMDf34iuhXk^6bNLJo7o0IONi?rhOF!-2<lS~*e zI(@+!n9Czv65s{-q$blp;`0_#{$bMzk^vb;Y}1PKe@HM-e3{=D+XiOmryio@=U<mJ zYtZt`{=E(jvdZZuWnPJSDrrI??hJW{m_F1H7jJR?8T3uB6?@poUDj}V_{@MNm#y%- zyR1c8)dOi4OMVNya6#?q&4Ge_;s&4fL+rpT4yxTXFj6|h9vaJ;XJo6mD#mVu+Erj; zF{eA}w^4~J6L7$ZPYnP(EhnXOa|=s-^B_j}P~jtVVa}72`W&|M`ZB`u-L42R7W~;0 zcMtIbt&S_t#`Yn`!zS<(BfzLMvfN60<ZD5Em?_{rRrCA7IxdQ?@kfWMkAkg3N|1}C zF*rAiDvd*orRG*&%FCD*oL?4xDQ2N??Unra>U8su_*F&gO4v)I5CC<5WeL|f!%_d2 z0zAV&Xy3^KQ_CpT^H4VSNk^Y_B#?rn2V14GTqVBMUR$%dVO9>Kc5%rGl-^iwe%i$h z)5BfpOkxXo*+=Z#OIpkaAVsguc_IdOGw29#SB}$Ek{y0$1W`*&+i)3%h5+nDz`kO1 z6Gpci08ZRfG&S^q2Py(sqMmrLPw+fFRs#loD1IE*n$McrolPV%xq{5Jrrsk^L~I*q z*=m+BbdR3#nXM9VO}K?oUf9IQ?5?OxF_On}1ZKpWO6P-UW?~{b<uX@pQ%}F$JScw5 z$`e2D)#@eR!`Ri>4hj<-!%K73qy3I}6OAj04hj%UpF4Q@!_n=#R<Cb&=WTPAlhQ8K ze6sy`Sa_G3o6+z%T=<Dj<thgITp_xepmGC51t=9K$SE>f1AL-q@u-+^h&0#6W0`Ev zlS(>>RFA*{U?*PO5Y86b)gGo2D1EZu5WFDsdhcp+?e9vL6feO2jV!SCZZtDuF8n%< zyTA+P)LES;1YqWk_yb}sC;;(C8L>h4_Qkjg+{jm$XssW8c(Q4q=DZiqQ9g{0p<Rjc zY<EcGq9j$l-rEsSb;|bsT>4;_NTUtk=JXv>8;G8ZoXIHbbOB!}@`goi+wZBg^=W9@ zQcfiC3a-Cm5>j*%5)JptZb42Al?hdULYW91)w2s&rjfFiyyDfzcFfTF&cy?T<CT>0 z%<?@YZRD`&p%M~f>tjpLcc>FHA9+L>SdV0Tx~=o;5YMI}&ha&Xb;lRqrUKjGV||7f zFA=w%V$}MrM2vFjV$7^pZI>YB`v$|*h(8Odc`5JPwb9j%v2_xFiR4UEDQ%r8Cpwwp z$?xEJ9g8hm08OVpRs7YLUO`{zoW{&9m~N5meDcB8rc0aECcxkMDGI2?xDAGRHXAa` zpnN44mBe?!#Ea!VI1O!KOlze~&v&1$O4MhJTAp-_(gni%9&as-Jl=sMO7m@Kf;*D= zCojCSYnCfSepViThs2LsT$pFqtX6T_D{jbS*KE>>c9?BiTo`A|=IcU5JG3|FFUjKf zBgcxLS#7#?9rJalmQ*+jKcp1mi+Y@C^htu^8JRC`1npAAaR>xCN`BxM&p36-bVY#0 zZ7dHhZ7=6yc-u=2{+ig^@iu+}<C^oQ<pTA4>P*fG-_SJwt!n}n4wqiev-};KY{o|+ zGQ)C_xUnqsw`oj0{mrV-)qdrq5<Bk_*Qnn3sNua8o$Op{fw2SkqKRJ<#m5XkW8EAU zJ3qg^H2+AL9?P_$;)PzT-VDecZC_!TCs36h`;-1oybNWM#YrU?h3fy}8yZGl#03J9 z-$hv`FV3S!rd29j2RaaTOWz<Ap&^x#RmTaJd82aZ$D*Oin<ke~(QMhmF<;ppnCNZU zXw5MlEt1g3eh@N%+snzz>j0)^IY3Hz``)Ifftq+2pOHnzD4%*TS@wZLGtYOg$=VZM zSQwhL5mrCg7l^SPTq~HAI;kGrk5Tkk&W$}=ilBUwi(DoL-?A+hAJ<$cX3MQ4_}=2| zZdq?Hfp3$cq%u%a2~^C+u@NG11j!blp`&ys(wzT>1|>|hKv>qJ!BnUrOqHFH2G_He zoLzAK#Qye2#`cB}iXv0QHT>8wjW?Htx|xDs>c{g}Nk}2w<duhNHjL>KtPSd@&IZgw zPWqIf;%@b$A-X)KU}n0xi6%`<3kl!+&RL3-qesfDky22j6ig$-D?#S;oy5+{q-gLd z>!22JT4##0)|Z?lwn3O%y)q5HaT>AtwbILeF($>gVp<^nj?b8-NXtC%qoCOqF$(PD z>sel4UMFbpxkpnFLP4r-{q80{DP3#3pDj}BMUf5LpqU6?E}C0tO61xBT`+f*krF#< zp@%FuJAo=c%N%DS8R6Ae#N!}rSm1A*Q*TV|p6qcKQj%|R!l|sgN{a7$)9PL9^2UYj z>XFBes?(YA(t@Q>t-%{Iuh&Xp?#KPb*N;=k&R#gxlxt*&;p%lw93ci?v2DC!yM3-c z-R)T=fv;^axP(O_Mxtsla@M_`phVK507@l$zx5R=@BUrr8!0VF<1j|C^U*|uS;*k{ z7giXjW)~wK>}|%^@-A0!yd3P?pgeU14<8~c8_uMs(9j=FP0o>&%0l5x%;H#i@qu_C zCW;$lcD`3$+#l8$>@Y>@%$B{(Et|UEG~}wi(kI#g)-%k~kH%lrDPA?sZhq4B+ry2% zt8f~c;ZUx=(88)?ti+6_m~(>Y3{&2ud%>5S8*wI}Gp46GPJMZn5giTJ7yz@^@+%5a zhm^aY({c)Uly}s}xpR(rNQj50nc7#tg^!bB-3AzmGEHcUPV7G}JCO7kwDHN*^d?y$ z<PnViMH^-o_!!ggBBm46>qY4n+Xkmh<s_hGyZsW$IkwGt-+qj*lMkgIpucnLVb>{V zKk$0LitNsY8+m~I2yxc|!BvkU91j>D8b3-h^B*c`GgURQuoy2T7g4>@U#?Sa1&j}x z>D|Oj_}G>rxXuMs%M>EMB{mPm#P58>#bp<AP~Oqs5tlijzY=e0JDCz_zGd~n)h>c6 zwCde3OTXhQ{uZ_E4Vm2{YBgzviuNt4wKti1EO<=O`7>7{<>Nhi7^|h7<17+_R$GgH z`j>`SwLC>zM#;=?@k#IZ%^2DB6BW?dk5M6J&l9y7&g!w(Opm33=ZO`S5Jo5a^^i4( z9X4J5z;pfgt7fQk&W-bBVDv)3C<hdOgqeKgqqJl?1f;m?gsEL<o}oj`L^h#z%-O0- z2w({#IMsCVz?{Q<uG6MVORM)5Lz0XW$J{-AtS;f`Ea|r?0<WBel8Sc};}cF^D$1_B z(7+tev&8nJRamAILne-Y5=yutv9qyk0((5)GG1w(3^(M@9dXdD-Z-65UJVrEMCG|0 z_P7aF5S4@RO>SOngoMByK*mmCQ`ocMho=P-sl^bf{a9i}0@2HKm}4{K#~;VYcrpXD zyH9yk*&N#EWI_$k1{tSPH*6vmGP*hNIa}vLQ%LO9T+$NdD8DfNA183q=Um9Hg^t(h zc&!4hq1x)%WWXiEUWWIK-x2g8i?q;EGx%!1Vu94ouQ+`+Id;=IPcHLCW2(wHkRaa& z{d)6j)~+MfCx9afjtU*g6d4fP^X^nbQ&YWA;zBx3z~_}wwWvA9$nQ5DSs;1(69O5c z-{X<R+V~<DijUIxw)O<ae@$Uu;dqBAQti>ogeJGq%6KKGmesl6#hgG{^njD_ljJh1 z8M3F@<TUOu%0}4?Kq9CO!7i(^8fjy|A$U4rH{q=wLSCg|cGcbvzP1Gk)`Da7H2*l3 zyXwdAYtHV_nVRNwHMAkP$qYxW%6ZbJHI0I|aq>@4(UUn3$E3<{$HJ0h<G$+kFEQ3$ zU}(e6M>*4GH5+PQi9xM!Inb{dJnI3#;yg+9G?vJgcCho;HrA1cSdCVaRfr7)@h60H zstKp6b7|v(qfas0aJVz9rH<Mi52i6F(_qQ<fqDfew-7;%cB?-FVtRQgtT~UATt3Bj ziXNNQ)HESxIVoHDieKufojzu^b_C2Ru@3>a#v7lX_@5tGLk)h+kgH|kL0WoX4h&N- z3q^!MQrsh3dbKI0;zMd9)un!<1Guhb-Yp^KwBUp>BH@}b7ePrKm1#ksYyyA(<^iUT zt?u1s*E4OAs)0RW`t?9b7AEUvm}=2LlQ+R-hSq_1v!-5Yw_Iu>+gmZf+xbnMl&)2u z5_NQn(|T0}wA|-c!zuG3qLA_%nRB0MLtlJng$0+x+d%JX{u#-@cX2#*#}F&)9Da_L zi(xCtXNj3Zkl$8`N2eo_=O;_N93^EvmTPt6MWuEqhDWPO7Gx9A0V<_$#Poo@TOhkw zu{pKJlenDl#R0Cz6Yi~%*<h~C347@jzRh$n?hGmg+V;MBg}`k?bIbXs*37|8<6Fie zmq2{Cb;MSXtd{t}V{l>oHhZRy_<SFV_p^8F_s?<e4cXfMKSm3s+#XMg&D(<!dm63y zm&aD~tKi%{fkltt1cut1)X(#`TI6#b`LJJ-GOmo;Qolq`q82;PgLdjvx4r(1oJ8J; z&2hE7hiYy~fC!~J{Fq8DC|Q>G@=Ej{WIb<xmm{z2iRq8KHm6L>8Z*Jb<?<qOLqRB? zp1{YEUq%!7IUQ8sXr)G>|3YK{ZSrE_!v;xjFE$N-!Db%s<2!~H6F-SCU*<h*gmf^_ z=$Sd+(Qwd3uV|5C*W*WW;%gA|!{g_3doj6>g`i7#v6kdGu<epYMwXG!u+WO;=Dgx1 zri*HrQsC#26D$=m*<lY9X56o9TscL#t`;)&4r3MM57{Bqx7dped<OOvgn-ak5HN6B zKFdDmV0Dd9PCdtSyd1Y?JnCqt5L7hrERbzUuR^7!fca_ut{(oCzW<9-k~9`&D5;^6 z0(5kcwc;xio^};b0sdz@!22UF%auWz4$BBL9GD*<rss|)nzCM@wy#>IB`>v30DRlR z+mfTMBsL$05tH2r_;NNmD{AjxY-&pliF_E<+o!Jc$5orag{^gLyKtYQK8$ECEe<rE zW3fjw0F>2bym>A*%q^jt)U*kx+GRr~Lq9k`62R`fMX8?rG`McqK>A=$K^3d*X8aNC z4lHkloQL(tg8OMzrzh4XMSEI)gp<n+IC9>d5l71t$_L9{2jPUZM>ZE|2aIM$ztD#T z(u7hP{<V}hV>SWD?m_f2GlY&qy~u^~D$Nt4FI%LZiJ_;2LGaLb%(*ZI4e1$7=xr0q zA`j>_q<ta=F*WQE%=vZm^0oP{D1IFJrF~V6Q{gOoo8rDX>6)^!u&gi7RrNx>sAJyK z-J*z|0d^KTt;Ar0MHVaDV5gg$q5<2Ng5j%@`G*jR3UYUIk}s*K3a+a2sUl9p?aem> zL<JG9mxY3%2|t_O4EI<BVb;v<L2=Xl*fR|g8NkZsoel2TXN5BLv>E_UP9@Q|Q|Ydp zlVAF{B3k=+QRnLg`@+caKOrAbf8t>(ghBq#zwvDa5j9HF&t>A?WaDi`>jV(}ay#?s zMiWMdR<qBJWosa7uUddyHwyywP|fbWAuZkH^wdkhL}yrycJvOn?a3ZCG`rQL?9@bJ zxBKDS<|Lv^whb*Zqg0J-J>{RjN!&t{>Sxmzu9-rT7a4FP_6`G$gCSXssyl}*>HW~e z(+l0LNuJDOVevc7=@F!kO|FBR-*OH-`s$o3m|h(_1kY($8Wh7Xcs1?)-A%2#G$`Ja zd6hM|e`Cn5)r<9a`75tls2`2;^Zi0nR4RR*uM3Z)IkFTifuiq&@HKWF#>7?0n(+JP zYd6<mEz!Aw1ef1$u<g}!p0gRDOqxTVezjk7aaMW1m*?S`c}LxJ5h{Y2+!o3c!3K@M zS?w7b<a~99Ap<J#48_dA7Id+aE5csNh?}aKW;0WyI%;ekj{dR%ec+rzKC5JZ>^FR8 zJH4e0`{eYYsg|Xp>6+@Mp_l3X_i%+pogpLfrnVJ|btBW3ne87=jA~7|lrMjMe0nzS zc!qj1s(&4;&7iK{XSOYjAJ#%enVHlaoq&2m8rpNjs7H;Jo}%fdE#wn*m{L~3P3csa ze*_$&`9rZCuu0GS8oK^l!>*T@wZF6`=e8-Z^W}~S(P+tP^Be8}9BoB}aIC6<XhK1Y zbcT+twGeDLycLT7gX~0~3M5visNawr=*l&#q(aV0<-`P}M0_1oV^!reIf|ll&lzBW zClBSHJODN4w&oTO$!MHnGYMi#-R2FS?t`Pfg*kQ<m?)DoIedVynymfR2N0^IH|I*+ z=r4z%SWCL2=QsTSaeV|B|9CuowtTF6k9W$U{IAfH5hI|%{;L7uYP#I_^wkyqhYc0F z9asc^1Gyhh0z~0n2HMa!XqgZG5}rB&PWW6B)L!Gt*30EH6s6Hwg3I&bUC3+e@A`l~ zrDqVnCjy2a3Nm!V1s!UshgXe)#13*CYCj1Y*sXN;k59Kw*wgp>?9YhRPtr*yVF54s z`O20_o$t`fmE#p|>ad4UJxxrkhuHr$lydi~5(6${$a^m(-3;aKSz{=0&lN-Qd&(Qr zz(qk!_puqs;GWeWjsK%7agAgF{|HRm7hUZyurM%kaWF8r|Lt(U7KN#^!C$iRz!Qu} z?thVEM2EG<@i#>WXXM0#FZ^$M_itKM46Y@{4bKG;;oiGcxV$kP=5x5EF~j{;hW_2T z!IzEcp8fwP`nN03f16Wa+}#!atvAEm`@8bPolK|z|9Jt=zg50}r{sUDF))h4><r*& QV?Owh2?HLF;Xhyg2R(qE>Hq)$ delta 5644 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