From 2aa94c2858ad81d6fc345382ece97ec73186f615 Mon Sep 17 00:00:00 2001 From: skomoroh Date: Fri, 18 May 2007 21:24:17 +0000 Subject: [PATCH] * improved the mahjongg games + added `shuffle' icons git-svn-id: file:///home/shlomif/Backup/svn-dumps/PySolFC/svnsync-repos/pysolfc/PySolFC/trunk@167 efabe8c0-fbe8-4139-b769-b5e6d273206e --- .../toolbar/bluecurve/large/shuffle.gif | Bin 0 -> 915 bytes .../toolbar/bluecurve/small/shuffle.gif | Bin 0 -> 506 bytes data/images/toolbar/crystal/large/shuffle.gif | Bin 0 -> 1573 bytes data/images/toolbar/crystal/small/shuffle.gif | Bin 0 -> 1205 bytes pysollib/app.py | 2 ++ pysollib/game.py | 8 ++++--- pysollib/games/mahjongg/mahjongg.py | 21 ++++++++++++------ 7 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 data/images/toolbar/bluecurve/large/shuffle.gif create mode 100644 data/images/toolbar/bluecurve/small/shuffle.gif create mode 100644 data/images/toolbar/crystal/large/shuffle.gif create mode 100644 data/images/toolbar/crystal/small/shuffle.gif diff --git a/data/images/toolbar/bluecurve/large/shuffle.gif b/data/images/toolbar/bluecurve/large/shuffle.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad0e5e30346dae5531183e41d18a50b95862e5f6 GIT binary patch literal 915 zcmZ?wbhEHbRA5kGIK}`1H*enj`t|G7sZ(FReEIb0(_OoE)z#H)-MY1^s;aB2Ywg;# zOP4MU3JTh^X;W!wsgsk_qD6~ZTU%XSUEjWad-v|$xpU{vnlfphHMMXubs;cwm&AWB$*518)^YZeP zl$7}R_>LVrwr}4)EiJ88t5%&nd2-UENtKnAfq{WhQBk$EwTBKJ;^N}+^Yi276GCMK4Ylq4r7H*w;`(9qETg8(T0WMSlDsAtdt#RMo$7})arKBX@<~Z|G4P0rO2`}(Wt3IArz|R~tg5Dd>9WQ(xoeuTca@b@ zKB#Ex=+2apc>C_2(q}!rxC0-idI;|p&j0H=W z8ka m(O#u#?pqq|HP7_7Y}u&vM@JYs4x;2ILEm8qJjeF$xF@$H27`@yb$hCS>@TZba7{h*3v!6 zMvfi*3e4it%1UAqm8#;x@(OI?9^!0DDy_;Yol_O%nB3$zIa#Dtr%s>Q%ERg=#3v>u ztgu8yR#<9@vOG6ifwPc^l$3av<@o%ZWr~!R z$+HTu2=*u`$ltl=EWjZpr#xM}OjKA&Q9)9S>zy-`Nx=ulmV>;a1~oUXFKk$^%>1K- zVd1hzv-o9sB05|g=C$)HI9I)JSS~DNAYjm{zn{9Y(0+nHUy}>^_>+$$vYjK0o zsFtZA2nx*2X%LOcV#)06s8yP1JQfNs$%HbWZ_H-2<965B#H7V)HEK*C1Dp-br8ZNj z2#v&|Dom|KwFZ?z#1~CWP8$qH2aa2<)^sL~icv&_M50j|jmG2g=9WShy%j@ME{EIe z9rg{6u~}?~%{3he*i3f2#i0_btOnb}^fV9R#gl7BwNbzmc--D_G~%%0ySuw4t;L0V z$XR3vg!o)OR*!9_)8Rjm6_4o=7Yd zV+dw6nM@j!-Q<||2XLFqWVO)9v}i1r$z&WBd@Y&OWBT}7T#IOTc6Vg;$ZRO27ORt~ z^GBgfTT%TDoI2JSMG6Sbimi_A zzW2X^KiW7s1dO5uM~}PZb+%{t%>wV%>eKJn`}R$Wi|$oOl8*ets7n!*91b38JOb3- ztx9eUlxFL;hVDpJ#EP@uD1YC+FrQmaD3aYyT+W5aIZ*iuC)HnETnvr_LPI~PwlZAZ z{seaql@ZNU_^(DLNml1=C_Dy7J9CkYTriNle533#-XQ8z^izezDycfpyTe&9$CVGS=oSbsQ}zr3G>7sLn;D7ofJ z^8#7=q()xYCT{~6Hwat;FWfT6zPgGDO~bg)IZcqO|BppZW) z?8YHgLidQ=I#lMA@ViEwV7pG|%t63K8M|j|#Y-IAN+|Nm+Gpg_bMJC5mDF@3K3FoD=i3Mm07F({!( zP9C_!Mhd%op=(M988USoB{S$F^Ga6DMM>h@U(QmTM5k_Mim<;0zF(L_U0ygy=gc=z z=lTX;uz&Uw9ssv0-U>1x>LAkN1IJ}0^bH-U0D1M^rK>ga?!~<0wupcU^ZjwY7(%oU>1sWrXYou9Q-JdW8a$)|nZ^HU;1RRoyYt2%gwk mjB@E0*Qt5?R=Y$^+U1#GUNtilcq+fdlxH&^%oQ_%qkjX}XFDhW literal 0 HcmV?d00001 diff --git a/data/images/toolbar/crystal/small/shuffle.gif b/data/images/toolbar/crystal/small/shuffle.gif new file mode 100644 index 0000000000000000000000000000000000000000..245971af6c4ba80eb4c423ee45c52bde335aeeb6 GIT binary patch literal 1205 zcmZ?wbhEHb6k`x$c+S9Js9~rftKsYF9}yI#t)Lz56rSLnXr^iA>+J94;L}{u(OlV? zn3Ariq!;5JlOB|jA6rA~J5qZXxy|&W6qv>D9XrAG&q_?xma8 zH|^Nj(>7_wj0JP&FI~Q7y|tG0veoPEJbJKtyvSQ83^_zAa z*nj!fjlRAvh6Zb80xkDu^q{$;c(8rmx+yZR?&ryAB;ZaN_ut+c(2PqSFG?qg-;V`tA?ym4*s(Ib;5&Q=sxbTDzqjn1#muAA69qcFZ$N?0nlsA&K3 zW7DV4SCdgQ*ETOqC@oDcpE7Coo+F1_syYo-4fBeN=Pg{`)jXjxvnDklO-5KcDJ89` zyuCKR@#vY;)j9Rz0^%30U%mbCzN?Wd9}l0Odth(-wV-@b>>o_zWC_1CXoGiNSzv2lrsN!$ta{rR)EAKY89 zZsYwYk0$g?H&Qj4GjB;%RxKL~o0p@njke9qnKNI%dz%+iz|O+1s;FwLZd}*YIDOi@ z(7=e^jw#80DIDw^@?!F;(y9`I53846sg^`QlKZ6c1!2olF7y|>xKZgIDG8O_3 z4UJ4}0x>%#I50A^3#bHaXkc`1#5O6%y#3`Z`vE#>krZyfavw{~79x`_bD7j70 zIC$X*r-)|AnuLpoj&=(eB%Kf_EJ$P!G0wQMq44ohZW+sxHxDizKHlHz(8M9>w4`IA zGUEge&qXOGxzv2;@YFD+I*LeeE%8~Xw4rONcEqL($&IcG0(!A~YJMJIAbvet~K|^jBk!={qt;Ve*KvEnLR+k zv6*9)oYRT`Aua(PS)q;<9!jnaV!THtw@wrn>rJw#V#!QcB4DoKyXedMNlU$Fa7^BK zVo9d(az7T^)c-82+?R?@cXL@O=rv^-*J6%IRg)i2?hRUY6|7ntyxzbo3&O8 z9PyH!{^dfK^g4l0T#_4ngt{d>PfR+d!`;frEIVVzqobPI7Z$ZEXzlsvrYn8p&;{Kc zPYyNd1=biI)KmX($(woKf^tEj|9_O+v=6Lsko8nyRc max_time: return None + # select two suitable stacks while True: - # create uniq pair + # create a uniq pair r1 = self.random.randrange(0, len(suitable_stacks)) - r2 = self.random.randrange(0, len(suitable_stacks)-1) - if r2 >= r1: - r2 += 1 + r2 = self.random.randrange(0, len(suitable_stacks)) + if r1 == r2: + continue if (r1, r2) not in old_pairs and (r2, r1) not in old_pairs: old_pairs.append((r1, r2)) break - # select two suitable stacks s1 = suitable_stacks[r1] s2 = suitable_stacks[r2] # check if s1 don't block s2 @@ -739,6 +740,8 @@ class AbstractMahjonggGame(Game): while True: ret = create_solvable(cards[:], new_cards) + if DEBUG: + print 'create_solvable time:', time.time() - start_time if ret: ret.reverse() return ret @@ -788,9 +791,13 @@ a solvable configuration.'''), bitmap='warning') self.leaveState(old_state) ##self.finishMove() - self.moves.current = [] # hack + # hack + am = self.moves.current[0] + am.undo(self) # restore random + self.moves.current = [] return + self.stats.shuffle_moves += 1 # move new_cards to talon for c in new_cards: for r in rows: