Bug 16214

Summary: Klondike: Clean up cards that are no longer needed.
Product: [Applications] kpat Reporter: esigra
Component: generalAssignee: Stephan Kulow <coolo>
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: 0.7.4   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: A patch for bug 16214 (kpat)

Description esigra 2000-11-28 22:22:59 UTC
(*** This bug was imported into bugs.kde.org ***)

Package: kpat
Version: 0.7.4 (KDE 2.0 >= 20001117)
Severity: wishlist
Compiler: gcc version 2.95.2 19991024 (release)
OS: Linux 2.4.0-test11 i686 (compiled sources)

The other Klondike implementations have features that automatically clean away cards that are no longer needed. This is needed in Kpat too to avoid the boring cleanup
when all cards are uncovered. It should also uncover the next card on the stack if the 2nd (target) stack is empty.
Comment 1 esigra 2000-11-29 12:14:37 UTC
--------------Boundary-00=_DOCSWLZXRI0CJ0TAAPZ3
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 8bit

onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> Erik Sigra wrote:
> > Package: kpat
> > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > Severity: wishlist
> > Compiler: gcc version 2.95.2 19991024 (release)
> > OS: Linux 2.4.0-test11 i686 (compiled sources)
> >
> > The other Klondike implementations have features that automatically clean
> > away cards that are no longer needed. This is needed in Kpat too to
> > avoid the boring cleanup
>
> I already implemented moving on double click. I plan to implement
> autodrop but
> I somehow miss a good logic for "when no longer needed". Moving them up
> when
> all cards are covered is a bit unclever :)

An 'A' is never needed. A '2' is also never needed. A '3' is no longer needed 
when the 2 '2's with opposite colour are put away. And so on.

> > when all cards are uncovered. It should also uncover the next card on the
> > stack if the 2nd (target) stack is empty.
>
> I don't get that part

I have attached an image to show it. (I think this behaviour is required to 
let the game finish automatically when all cards are uncovered.)
--------------Boundary-00=_DOCSWLZXRI0CJ0TAAPZ3
Content-Type: image/png;
  name="kpat.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="kpat.png"

iVBORw0KGgoAAAANSUhEUgAAAR0AAADXCAIAAACoDBJKAAAgAElEQVR4nOy9
f4wdx3Um+tEoAqcGzaB6cGl0D4bGNEEu2FzpQZeSAg9lBRIVPTyNomBNKQYk
M1ms5PdHIj8ssnZ2EXATw1CIIJGF4L2Yzh9rK9hEsoG1xCzW1njxtCINWyaF
J4lXiAheISKmL0RiuqEZTBfMC9YHsAG+P6rncsj5dWc0FIfUPRY+N3v6Z91z
+qtz6tSpLQd/5yBBgQxwgAPcKNwyNTUlSlhxgAMc4EbhlitXrmAgAxnIhsrn
3EUHhwEOcIAbiFuuXLqCClAY4AAHuFH4uZKlg1uMrnJQGOAAB7gO3HLp15dQ
QYf6tZ+99ugjj/bwwJcOLGmLWvRm+B4McDOgo7vpz7A5UfkIBgCt9EJcLtZR
shQlJK/DQ//2EABcBiuiAgBXOVRgRQD1RgVWbJ9pX/r1pcVX2Cjc+ZWh2nkk
2AUqgIDC1PG5G3THjcWhoaEb2j4bjDc78rY5UYmSq2awAP3+NeHhPz4MhdpQ
KyzcZkXbtY6umCle/tHLQ78x5HlyHXdZAff+wTCAr375qQcfPrDXjBuEJ+3k
5OzLbXuCf58ODw8DuBH33UAc+s37cOXK0JYtAC7NXbrpzzPA9eGa+WoFhMLe
5t5lQ4+XkRc5Krz8o5ef/6vnvWlt1Bdi51NDAA4+dvCbTz4nCNvdyaPn/uSk
nbRvA1acBct29DtgB0O/MQRgbm5uQ+674QgluAz556lXWq8ODQ9t2ucc4Mq4
cXx1Wei7fMvJVsRRXBZlKOHEgxP6Bb1RrDXy1NBTjx08MD4xsevg8e6xjjp9
+kz71Psn3DnwPIqfXvNU5g6wwvDw8I1gA/9GC3Ht1yEAdp1W+sqVK1u2bFnH
c94SzHx74+fIWu0W85XvyPWLqHlvZdMKo5Dg3nv3jt8/7llrbXdZhDufGjr4
8MSBew9M7Dl4nMdOzB579c0fnjpxojyBzt+h+Cku/frS3NxcD+0Z8APIHgwN
D32S+y5Gb0iZbV369aW2bV369aWv/c0Tfv9ariNgKar+wF25cmVNzzn0G0ND
w0Nz01PAhr3XANeBy/MVBISoRSjL2Cjq66xqWmabAbDv3n0C+eSsBWDiwYMT
uw4et8deOPM1zbHibZu/D/tTXJq75OMzC4/39xoaHpJdG8Na/vnvfm7Yd2sT
02RlU9Nkxe//8SuZbV/69aVDzz/60p+81t+bEpWwW/gPnDetflir5qjpad2I
sRXAp/JtXlJDBqjkc97C1sBXJLAE2sr666wuCmVeAriGtZa65qq48w+GJh6Z
6DGVrqLyfFG2YH+KuY/nVjh37uM5nqsfZx337eHQbwxdmrukRb/7p3OsrEBe
vPBNgTnyziG/nQQpK/vSH782eebFS3OXVn9TJaAVZfwHrmdaQ8NDK5w1NDw0
PTV15coV3TDYClx2n/C9+sVNwAybEzfOv8Jq/tW8GDFZJwMQxuFV1hoeujS3
dtYCvvrg0yQ7OH3ywiTOS95h8VNc+ngJproO/THrvG8FUXL3Xw5fmrtEZdHF
i8U3n46+88TPdr7yyNSjP9n52mNTD/1k5xuPTT3xv+5+5bffbXWPTex5ujat
Ve5IQNhlj696prVly5ZLH1/PWkPDQwAuTc/pOMRlYKuu8dPhqwEugxsXD+zH
v/KicOSvj7AiKrjKkUSF5l1Nr3D933HnHwwdGJ8wjbiNk1mnE6ro7LmC79e3
6PM6q95xuae6+y9H3v3TOasKU0VH3jt0+K6XvDkdevOh1x6beuKdvW88NnXo
zYde+e13n/j53a888O6p7rGJO56e/ODFle8IJejann+12LTmPp675tk+mtJR
4jt+V/GyixrRE195AgsGcF879tqaf9MB3vx4YFVfZ1U5+r2j+Yc5qzK/kOUz
RftcBqLdabfea63pjgAkQBqkR+3R093jrBhW0vop180/S+KluUt3Hx5+98jc
dUz17p/OUVlTRUfe+/rhu1569H/d/dpjU187d99LX/rVN4uHXrnn7Nc7D730
pTe+/t5Drzzw7qGf3f3SIzVrfe3vnvj+H76yEl8psJtfx1eLWWtoeGju7K90
4Dt+80YF4DJATDyy76tfPmiiaN/4o7iM1/7xO30y8/DnhxfecTFDDrAf/Jyl
JYiNiAf2618B8e5YTJjs2pck6YF7x5M9cTqWAljTHQH4b4O11gdUSt/v39C+
8tDw0LtH5u4+PNLbc9/zNVNJZQ69tfPwXd994q2dr/32u39WPPr9Xb+6+7mR
70Rv3P3cyHfH3rj7uZHv3vXGE39z90uPvHvorbubwcEXi29+/w9fGRpeIUIo
6JaiQsdyyaab+3hu6PNDQ8NDU794SYxArjUqAFvhgFjEVQxFwzlsBSuaF54f
+sLIym869PmhK9eKv9dm8FhuLVyWr9BzTK/FFeKB7M+/8t/U2MSlLePRhCIA
7GwJrOIRDR8YEgEEIiAgCqxoq7ykg9BaaAMAO78yLAEAsAt0MT159Yt734H7
Wu+11vQNvjR36dG/2fnukemd/2l46q/m9j43cvbPpq2ypooefWvktS9Of+3c
fa98ceq+H4386snpnV8Znvpvc54ZPI785tD0/3fJ73/in/a+8uWzkxdeXN2/
ulhChUu2nCj5/gt/dKC5N2qIViFIhNfzlVaaoFYCOlTEZT1/5WVbeGh4yM/E
y8/nWJDnNj01vYIXuqSGDBDryA+0tL5Br8OyKqVP/8p/U1mKgJYSiInCaCYG
QHCFbDS+B7kH3//e99NGmpiUpK3y4xeOddBiBVF4avwbydnU//XYmR9888//
pPj51Ws+9L8/FI/GUBgeGZ76aGq5u1yHw8PDcx/PZWyfPTJ96G8ePf2nU8e7
x/bLxBPv7Hz1nqkjxRPfHXtj51eGz/5wemh4aO7jOUu7EKdOzvn9/pgn/vHu
l578FWGBpe9YxwMhXIavWNFAOzotoatKHSRL8FXlTGBcRYh2ldVbQ1b0hrpc
C/tT8/O5/5VHvjAy/dF073cHsNzvftM9mc2JG+Zfaeg+/SsAcNAQgAiE1oXG
iPcmVrzL3PTc8Mjw1/7j19KnsX/swWQsLWmpWM5aCFCBY2VhThfq9KH//r38
H1D4aHsFb1RJlDz1B0/98B9+iDswMjIyNz3Xz3vNfTz3+D/e9+rv/+qH5174
/v/16tHON58d+87j7+x89Z6pF2YPfaPx0t6nRs7+cHr488O9ey2+gv+rP/Lx
13e++vDU8scTlbCyy32kRElBt09px1IHEYirfDWPWmkCWklJlyiDy77DvGyP
YGRk5MqVK56pevqw8JiX/utL/bfYAGU941fLoIPDqv7VZW9UDsoB9RiIBBoV
tT93tbtMT0/bnyJ7EZM/PvGDn3+vrU6e7E6KABWao01I6+U3v/ed568alT/r
oYmH4kZ8+M8Ps2R6Z5qMJs17miNfGOnnvYY/P/zq7/8KAZ7a9Y1D7+x9duw7
D/38eqNixd69lkRvWmd/OL33qZFXH5564czXlj9eUFlRxtIu2YSsaICy8nxF
CHDZ1WNWPaxcHNT+laus969qQ13qCXtXvmbPgmMEy547wCXxcxvFV+hNCVnB
qLYCDlDepoBq3lsTcSv2/q9jreKnyN8HWmj/vBOPGlbY3xjfa+LJd1r52+D7
i5iqkTz//zzfarUm35wsZ8vx+8eTKEnvSEdGRvrhq0N/fx+6OHbh6Ev3nH3o
5zvfeGDqSPF4z6j6bJ+5j+d27h8++8Ppfd8Y+cYd3x/+/PAyRxLKsLICs2Qb
CpCToecr71/1xqx6qHRZ1f6VnuerFfwrL9fvWehHod9fZ4DzfLVB+YH1D7OK
UTko50iArj639K5eKGv4InrWyltgC+03i2ajaQK+/NbkQqO6ylRR/NxfP9c6
0Tr+5vH8fN7JO+0P2hOPTMSjcT+sNfz54Zf+3a8kkIOjzx56Z98bD0x9/YOH
DkevjvxuzVT9t9LUybmdvzVy+oXp+/7TyOp8VdlrWg81F1naUEnJ0vtXEPER
v2v5qhRIz7/CVljW/tWAr242X/n8wMW4jI2u5F/1mAoAoQFUNQq0TzMF1/ZF
vMpa7+PUmdZKTPXXz5/65anJNyfz83nWyfJzeZEXp987PfHIRNJYnbXmPp57
9G/3sctJ+8OX7jl96J19393zxqF39k3/j+m9h0fW9A0b/vzw1C+md+4f/tVf
TffBVzJvTr3W03BOIDmtD8RrJSCgNZzzf61Rhz4eWF7lK6zgX62fr5bUkAFi
4/IDy6rEkv5Vj6ngXDXPVKCrSoCoStTKVHNd//lp0x9dZa2rRjU95//60MRD
8Wh8+M8Pt37ZOv7W8fx8nl3ItNIly6yTdfLO6XdON8ebnrWGR4aXu8vw54df
+8PTPzhzZCJ46usfPPTSXaePzh566a7TX//gobPfnr7vWzv7f+a56bmdvzky
9Yu54c8P955zUcZdzVcksRVwJQC4EsqBORTIMoSwKq/6V66E1qgWoCtDXONf
Wc77V8u05JYtW5bjq+Mnjh/6t4ee+/ZzSz3tzWeGzYkbFg+sOxKLjQrzTFVR
X4MaLKEEXfqRqDXxVc1aH80Nf2GYgKA2qpqpJuroX6vVOv7mcZbUgU4aSdEt
tNISSHmh9EemaSqV4C6MfGFk7qMl4l1z03N7nx45++L03m+NnP32EnjfcyO/
+rO+vKydv7Vz6uT0zt8a6T3n8nyVQwkulhABSyigS0id4lRWFCWOpQ4SkAgM
Lrq6Q6jEb5dgqhb4V8DK41fX8dX0R/UbHT9x3P/12f/z2c3gt9wquGH5gVjs
X3mjqkoocbQa4mi1EleVGtqxhBLSihJLinK9b+Sa7jv90fTIF0YAzE3P9fa3
3mu10Dr2P4/1nuW5P3vOWnvy7ZN21qa705O/PNk607r+Q7DU3YdHhn18f1Vc
+Tn9MXsP7Jz6xfQKRy7gKwsFdC1EQAslIAEhreeKq+NXJGSe8ytCBKRUsnD8
ypJQ8Qot7N8CwEv/9aWFJZF92ZJV326A1+ENyw+82v0TkNqjkmuYihR4NcLi
Pv2aWAvXZq/39ngc+VcjYSMEIIG4WQdVq5fnjYVHLr6+P6YfXOEJa6P63Z1n
j0/57WWPP3PKtNrWGEe8+o9HH3/yGXRzKO39T8dM/OBEzVcRCG9IPXRF++jf
He35V/X4FVYav1r4psNfuCY/cHHbDrAfvDH5gZcdUPsGrrIAHC0UfM5bydKp
+e9uZQFB5WpyuzH93fSOdGzHGKQOrvRe/gb1ra9Db0j7vrLz7P+Y6jHbcsfP
Tc/Zf/91M5v/yb0Ptt5rv/qjH0B5bnclcw0hS6OEFa/6V5WFiOta0P7gb795
9O+OJnvSA+MHTBSFqvavfBWtflp4+qPpuem5Hm4GX+VWxA3LD0TPv7oMQKNy
gGeneaYiffdPPFOpOmEHVQnoGztCMt+xKVnGo9d0h270d6s2qqd2nv5vqzHV
At4YHhk2//d3jzzy1OHXjwEvP/7lg84WUomrclHaVgv5ihCBtS/+7V+IQRTt
jSLs3Z26ymnRQO1faaVX8a/WhZshE29z4prjgZ7fFmOtpj2fakmmqmqfCgBp
AWFVEposvWe25JUX4/DIcJ9HWtpHDz7aHG/GJi6KwhY23Z0W54tOpzP90XSf
V1g3Do8MT380ve8P9p78h7N+u89zpz+atv/+6+bD9pGHD7bea7/6k2MAyBJK
W+bS4yvSkWfPnDz6N/852pWku/cnOyJvVGEQAjBB7PnKsezlB27gO24GZtic
uJHzhVFd61OphbiAqQBUV5kKfv9avqa9WMX01PTKR371K19Nm+kzTz5zqnUq
z3ITmbgRH3/9+A3kxnn0qasP/dG+ky+e9ttruoJ/R89a3/jZMVSYuH8/u7lA
WKHmK4WjPzpqTBjtSdIdMYAwiE0DWhIAEAMfuL8M3Yd/NcANxA3LD6z9K+cW
cNQ8UymULOc5iqy4kKnmGWyNI/oAFEZ2rpQt8fhXHg8b4TNPPtNqt86eOXvy
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
8Ws3iB8ljVCqm7aDLyMDNwrrDnh1gxvpSuVZu0YuL+3G59W4zYiOOn81A1bl
2GZw3Ghmh1yz6CWa5czw0vX/WghKaEDR6xRlJQJXSsWsEH4JNv6/HX+RC/VL
58Tmv9RZdE2bgYkh1VMwEeeBJpIiCsPZqeCojiG3Wms9kYn9U3nZ6MQpMqPp
YvlW6Gb65O8Xn7auawND5qjXCtOV9zxKGoNXbINj3CisO+DVhfavTPS5iZzp
+rJr5Mr7b3Cx7Eqj7CuWiqbvkeQv6+6rmL1V5HnI3ioAzRphvnbdOWDBfHCv
E0RAws9FAaVUwV8FvRAvULNo1XYy+VHb/NdFFt1AiXooUxIoB0MPQvMQ8iHV
TMrVbkVlTiVU7SXKpO+IpXVCdqjk9wtPi+ZrfvHfF//tk1gv/G5JlXLKjxGm
K+95lDQCr2C0yt1gX11Ynm1eX854sf7rh+drlGyqypV5Mjaf58J3t8qrcZsR
HYlXnftFa0n+2qXcfBWTm69zlytX7D/9Q/0yV3PkjKEisILetXvZ0EAJi3WO
QUCuoPlVWynWq8LbgobUAjKRKMigEsM9TnnRHFBmUhWuEsXjTochfmVmcgpi
WlozffLbxce/betWlXlZqG/8Si5viGff4FcvBR8lvU6pXhMT+POr7Kskspd3
hH5yXnCva+fCnR9ev391OU/GhR59eJUqbt5/A+ruSqPsq2xGc2xHld9zt6TM
QvmWuiXNce2lykPVX3bVTP0XLtFnOKAWZ8NZYJpUbQSn6FuZsEKeDNV2Bqki
SfJtNEZS2kS2mCvg6FYdKoe9LyEXSDAPfBTdd45/isU7xeKLo3yVDXfxxdGv
fxUl3helwNSWBgf9roufR0k7jMNl1bogyldeLy+5uW9o54Y2x//6a5/h5m9d
lWx8DI3avyqUc2RhHRFPYEbzdcxnzN+p5uRemhjjFy6hD2QQB3efu0GpVnXp
BzVzhJTWYv355j2lEC6FRAk9dikV5DKKEhGXIPFeobn0IkDUp3/o6i+O4pfd
p583RvUXR/Wv6vfwX6GXAUENHUM+qVHCdKXD/VHSjeMw1r3+KPmuNC6/xUxH
8LIQGuyWFHXurx1p/HnnmucKedCANqizzpDKrJRHSYUasJUO5DcergelQoGL
90uhkgQFZFBISLkM5E/L9yQUFy2f/I5F6/bEzVGd/a57D70XyIYKjzQm2qsq
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
i7TDq15kdkK5VXhtWlWeoVMlp7PJpeRVNZNq3fV9D/QbZG5dfM57F98Hy3el
UXj1i1+1GAXlGRSuUnCQ+SjGIqKjAalSRMWFU8A6W86tozGcDdEY6gcscr9S
oWQLNcNpkbMTxMZBw/5Vg5PultB42FfORG/XpoHalHKRoj0GNNQru4KAs3gL
YbqRHv6a8OrHu3fxfbB8VxqFV/Wz5/PPX2EWTSyhDMwtoiN0VqZVIOwQLe5M
6iHGIbipCspMsmtWycucdsQ2bad0bQ8JmBpcAqSYQKfaPKl9reyxAc2kEjKn
KAscqeTnEnYZVsgpvZ/QUvp3zyp+t7ijgV6vCa8Q33ulmx7p3sX3wfJdaRRe
/d0v/273X3iI9Ap2HeiPR915sIQZpy85GHf/XfOH8yRvGN/VUzoCr6adjU3+
qy3uP/g5py+B+9wdOv0pwMHPt3vyiQ/873f87gi8mvgteDpwcbpKl/WNKdg3
/4sT3+Qj8Grit+Zr4T5Djzv7rdOfTOp0/3zCq2+UJ3E/3cgOuxcFON1IHzkd
SXwIfMKre+Cbon96PqPqSDXb7VsT/8b4hFf3zC+oxOm4xMWTIj1wPuHVw+KT
wjwOPiKefeITn/iWfEQ+polPfOJb8gmvJj7x/fMJryY+8f3zCa8mPvH98wmv
Jj7x/fMJryY+8f3zCa8mPvH98wmvJj7x/fMJryY+8f3zCa8mPvH98wmvJj7x
/fMJryY+8f3zCa8mPvH98wmvJj7x/fMJryY+8f3zCa8mPvH983HnhccdDn9j
6EP46ei8iI+s72samV7mJ69v6Y2kO377I/Jb/JSfffizv/4Pf73Xbt0b/e1/
/Nu/+enfwOi5Bz744Qf/ft5kKBw6nhAOEdTHsW21aJzKlReBNqYaDkNh8NK4
5OMFtQHixjMEmAcq8xLmz6ScBbbVLJwKmNdQgiCIEhZDlWQ61GJBQC2eQxAt
1KZLtVqGuhBEqIJUuKzmvWiPOkIGhFC8WsRf/PIXY2df+OCHH/x43vSoOnR9
QnWIIR7HRau6sSIEFIiRoHVRdHKjkl/f2P3n8PKZnNPgxvLCNoIFVGCohKAZ
CsPToIhTccAWP2dI/78w3VBi5mL3q2reiHjUETIBoVik7u/p7YdIDIRAjBRa
V8AZY1/Bo1EqNvsyWrB+8v0mW7rH0YRDopWJqghF4SIIhgEtpDxno9YWmqnx
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
1/8flDjLVd9D6n0AAAAASUVORK5CYII=

--------------Boundary-00=_DOCSWLZXRI0CJ0TAAPZ3--
Comment 2 Stephan Kulow 2000-11-29 12:26:17 UTC
Erik Sigra wrote:
> 
> Package: kpat
> Version: 0.7.4 (KDE 2.0 >= 20001117)
> Severity: wishlist
> Compiler: gcc version 2.95.2 19991024 (release)
> OS: Linux 2.4.0-test11 i686 (compiled sources)
> 
> The other Klondike implementations have features that automatically clean away cards that are no longer needed. This is needed in Kpat too to avoid the boring cleanup

I already implemented moving on double click. I plan to implement
autodrop but
I somehow miss a good logic for "when no longer needed". Moving them up
when
all cards are covered is a bit unclever :)

> when all cards are uncovered. It should also uncover the next card on the stack if the 2nd (target) stack is empty.
I don't get that part

Greetings Stephan
Comment 3 esigra 2000-11-29 13:19:01 UTC
onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > Erik Sigra wrote:
> > > Package: kpat
> > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > Severity: wishlist
> > > Compiler: gcc version 2.95.2 19991024 (release)
> > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > >
> > > The other Klondike implementations have features that automatically
> > > clean away cards that are no longer needed. This is needed in Kpat too
> > > to avoid the boring cleanup
> >
> > I already implemented moving on double click. I plan to implement
> > autodrop but
> > I somehow miss a good logic for "when no longer needed". Moving them up
> > when
> > all cards are covered is a bit unclever :)
>
> An 'A' is never needed. A '2' is also never needed. A '3' is no longer
> needed when the 2 '2's with opposite colour are put away. And so on.

Sorry this was somewhat unclear. I try again.

I don't know what the 4 destination stacks where all cards shoud en up are 
called so i just call them destination stacks. They have the value 0 in the 
beginning of a game and the value 13 in the end of a game. So here is the 
formula (unless I'm wrong):

A HEART card with the value N is no longer needed when:

([ the CLUB destination stack has reached at least the value N - 1] OR [{the 
CLUB destination stack has reached at value N - 2} AND {the CLUB with the 
value N - 1 is no longer needed}])
AND
([ the SPADE destination stack has reached at least the value N - 1] OR [{the 
SPADE destination stack has reached at value N - 2} AND {the SPADES card with 
the value N - 1 is no longer needed}])

Seems like this became somewhat recursive. Analog formula is applicable for 
CLUB SPADE and DIAMOND.
Comment 4 Stephan Kulow 2000-11-29 15:14:50 UTC
Erik Sigra wrote:
> 
> onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > Erik Sigra wrote:
> > > Package: kpat
> > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > Severity: wishlist
> > > Compiler: gcc version 2.95.2 19991024 (release)
> > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > >
> > > The other Klondike implementations have features that automatically clean
> > > away cards that are no longer needed. This is needed in Kpat too to
> > > avoid the boring cleanup
> >
> > I already implemented moving on double click. I plan to implement
> > autodrop but
> > I somehow miss a good logic for "when no longer needed". Moving them up
> > when
> > all cards are covered is a bit unclever :)
> 
> An 'A' is never needed. A '2' is also never needed. A '3' is no longer needed
> when the 2 '2's with opposite colour are put away. And so on.
Yes I know that. The question is how to tell the game :)

> 
> > > when all cards are uncovered. It should also uncover the next card on the
> > > stack if the 2nd (target) stack is empty.
> >
> > I don't get that part
> 
> I have attached an image to show it. (I think this behaviour is required to
> let the game finish automatically when all cards are uncovered.)
> 
I'll release a glossary soon to be used in bug reports ;-)
You said "2nd (target) stack" the correct term is "waste pile" ;-)

Greetings Stephan

-- 
Frauen und Maenner passen vielleicht nicht zusammen aber meine 
allerschoensten Schrammen habe ich mir bei diesem Duell geholt.
       -- Reinhard Mey
Comment 5 Stephan Kulow 2000-12-08 15:14:11 UTC
Hi!

Please update test and give me input on how the animation should
look like. Currently it's done without animation which looks strange

Stephan

-- 
Programmers heed this: If someone starts asking you about
agricultural genomes it's likely time to get a handler. 
                                zdnet.com about Torvalds
Comment 6 esigra 2000-12-09 02:02:13 UTC
--------------Boundary-00=_PZ2ATTANUUOKC41AD9EH
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

onsdagen den 29 november 2000 14:19 skrev Erik Sigra:
> onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> > onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > > Erik Sigra wrote:
> > > > Package: kpat
> > > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > > Severity: wishlist
> > > > Compiler: gcc version 2.95.2 19991024 (release)
> > > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > > >
> > > > The other Klondike implementations have features that automatically
> > > > clean away cards that are no longer needed. This is needed in Kpat
> > > > too to avoid the boring cleanup
> > >
> > > I already implemented moving on double click. I plan to implement
> > > autodrop but
> > > I somehow miss a good logic for "when no longer needed". Moving them up
> > > when
> > > all cards are covered is a bit unclever :)
[...]
> I don't know what the 4 destination stacks where all cards shoud en up
> are called so i just call them destination stacks. They have the value 0
> in the beginning of a game and the value 13 in the end of a game. So here
> is the formula (unless I'm wrong):
>
> A HEART card with the value N is no longer needed when:
>
> ([ the CLUB destination stack has reached at least the value N - 1] OR
> [{the CLUB destination stack has reached at value N - 2} AND {the CLUB with
> the value N - 1 is no longer needed}])
> AND
> ([ the SPADE destination stack has reached at least the value N - 1] OR
> [{the SPADE destination stack has reached at value N - 2} AND {the SPADES
> card with the value N - 1 is no longer needed}])
>
> Seems like this became somewhat recursive. Analog formula is applicable for
> CLUB SPADE and DIAMOND.

I just saw you have started to implement autoclean now. Great! But there are 
2 little glitches:
1. It breaks undo (serious).
2. It doesn't autoclean enough; see the rules above (not so serious ought 
to be easy to fix). Here is a screenshot where the diamond 4 should have been 
autocleaned:
--------------Boundary-00=_PZ2ATTANUUOKC41AD9EH
Content-Type: image/png;
  charset="iso-8859-1";
  name="Klondike.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Klondike.png"

iVBORw0KGgoAAAANSUhEUgAAArwAAAHyCAIAAACGYoqVAAAgAElEQVR42u3d
f4gk533n8W+JFlcNY+geNsv0oBM7gxM8GxkyaztklfhINnE4zVrhssaBs4xD
nISDRPnD0fngYs2YndkcxEIJyUn7V6wjibWGs7QOp91RIM6uOPtmhX/smEja
FrKYGSQxPeiW7QYP9HOooO+P6qmprq6urh9P/eiu9wuxmunpeabr5/Opp556
HqPX6wkAAECg84+er4hI96dd1gUAAAhWERFlKVYEAAAIdh+rAAAAEBoAAIA2
FRERi/UAAADGoKUBAAAQGgAAQDahYfbkrPu/5H8sfCGeP53wrzu/rmUp0lsP
7teH32O/4nm9IEsEACiDkY9czs/P7+/ve+onzysxhH+8U+9fd/5uQZ4vHfUx
3K8Pv8d+xfM6T8wCAPJsaRhODHYtPj8/n9cH1fLXk4eeLJfX95UJWgQAwBS2
NMRgpwqnFh+uyQJ+pFHUD+AJQ+73BPzId6nt1z05RuPCjvo8AcsbvEUAANAR
GoYeudx/Z39+fn7/nf3h1503u9/gefP8gyN/FOHxzsF39su0JMxf8fxooDRr
/HuCSna+tQbe5r+woZfO/3W/z+Pzh0JsEQAAUmxp2H9nf/7B+X5QGPEGz5vt
Vzw1nPtH0S61H5wf9eeC/4rvj4YLH/We4M/v+VH8hoQHI9xqCfmHtKx2AAAi
hwanEnKqt4xroOCUUEDJc0DIEiL9IQAAdIaG4O73Ozs7Tl3lfC2j+/b71mox
Hl7wvHNnZ8fzASL9leEfafn8i4uL7k+4uLgYcgGjPj0R8IfCLBEAAGm1NCwu
LrqrZ3ddNfx6QM5IVXp/JWTJIddGcpn9IQAAAmQxIqT7KnkS/0o2nx8AgILz
f3pi562dxcXFnbcGrm4Xf25x560d583uN7h/5Pldz2/FfnrC82LAXxn+0UBp
494T7fNbA+snwgJGeXpizB8at0UAANAXGvzsvLXTr5xcr4x6Q/gfJWEX6xQY
/gN4FmTse0J+ft/fcn9CvQs+9g+ltNoBALAZvV5v9ye7UX8tjaoxX0Vboqif
Z/q2CACgUB7/08crvtXP2AvfVCvLMFfekxsRsllAAAC0q4hI1+q6X3rjzhvB
v2O/3/Nbuoz967r+tLuQnz/982/ceSOlJYq9gFE/TzafHwBQ6tBQQm/ceePn
T/98pIo8M/YHK9RHAgBA7D4Nd5p3WBEAACDAl//Ll/0fuQQAAPC4j1UAAAAI
DQAAQJvxE1YBAACIiLHy6RXWAgAAGB8amD4RAACECg29Xo+1AAAAgp1/9HxF
RLo/ZSRBAAAwBk9PAACAUIKenjArJisIAAAchwZbvV6//vL184+cd/59+Jce
JkygaHhCGADyDw3Jz9p/8J/+QETkA1GWsoem7lpdsY7eb/VfV5Zqvt68d+9e
ekt1+guzR59V1KGIJaJEKrJz415eK3p2djbVRZ7ujwcAmNTQEOArX/7KyKih
lFKqfdjutDvPf/P5lGopOy5cePTCyiMrCzPL9Up96+7mjc6L23dvyj8szc7O
ikj2tePs7GyvJ4ZR0Ip59uFfl15v1jByWTkAgJKGBhE584kzo37U7XY7dztK
qee/+fxTf/GU3tzgxIU//uxXZu+f/1H7xef2Vrfubna2RTpmtyOq3Zz7tKg9
ySs6FHgvMOUDMW+/8cJrmzQ5AAAyCQ0fjPl5tVqVE9K526ma1XO/dk5jblj8
wuyFR1ZWPnnh3KmVLbW5aT3bfHP31vbN7p6od+Xg2sD9lNpDoqzsG+SXRJop
NWNIRcQS599770dcLkuJ1VVKiUiv1zMMI8aaIYoBQDlCQ4ZTY9u5wWmQ0JIb
Tn9h9sKnVlbOrpz78MqW2rx5cPX23tbBrU77NTm4JsM1mV29mR9JMTe4a9DZ
2dk3/tUUWX7jX3edv6ilip0/Oa8s9cWLK0/83lcatYXdzm7rsHnlW1ft182K
uf/+ftiWBks5vVuj5ob+suzvzM4vckQBQFlbGqxUmieq1apZNfXmhpVfu3Du
1MrW4eaf//gP6tapg1ud1mvSueZfKzvVtvnhVHKD3YNBxDSMfn/M0x99QsQ8
/dEnRP7crmJ7PVNExe7lYLcuLH3JvPPnvdZhy6yIstRCbaExs/Dwl1ae+L3d
3feaV15+fvbkrFghoomlRIlSHYmYG/px4Z2d+txcdvusxWELAAUMDRHP2uGf
hTNNs/Vuq/FvGwO54f041efpL86uPHLcxlCXufa7B207Mbx/L6CCuff+vdmT
s2lUQvfev2cYs71erddbuv2DpsiCyJJITaTzo++fFdk984klkaZhHAR/Qv/W
hfl5Zaml/1q7vd7a+b932oetprrR7Gy173aUpaRiNk7Ulmrnzn1k5dxDK597
5OrVl18cv277LQ0DT9L2c8PoX5w9Obu/s9NYWJAPunJ/VT7oUqMDAKFBP7Ni
7r63KyIDueFkzNxw4ZOfU5ZqWltbB5uya7b21MG1UPf17ffE/rshcsOZM5/4
fZElkQU7NJz5xB+LNEW2+4lhVH08P3tv/57v60tfMu98rdf66e5W68Xm4Vbr
bmf73RtdMcVSUjGVpcx3zer9N5fnls+dWjn30AWxRCrVMctoPwqrvJlvVG6w
w9a9/f16o+FKDFUOJwAgNKQQGkzz6a89bQ/b0LW74Fmy/AvLUevv01+cPXd2
pTG30LS2Dt47qMvcnb0D9VrkCj6NZbRzw4+2WmfOnhWpiZwWuSNSu33r6sce
bo75o5bMz8/v7+972hiWvlS787V266e7N958sXl4a7vT7P60Xa+aptmQmY6y
uvVKXQ5rojrbd7dNETkl537hglTk6saNMS0NSvmO2DWcG2ZPzt7beaP+wGm5
X0RE7q/2//2gO3di7vOf+7zTH7Orui/+zxc5xgCA0OBf1YX07F8/u7u321Xt
g4NWq7W3u9dSh2r3vd3tH29Hzh8zsmAufP3w2dudG0pUVZl711RKOSDuClZH
V+FVESVhxtOsyMIfDrQ3HLUxtFs/3b3x9mbzsLnVui33V6sNMWv1Rs3sWrVq
Za59qGRGyWGtozrb724rOzc8dOHCxc1RrRf9lgbpKtWWcblh9uTs/r/+S71W
l/tFPpB+bhCRD6R7qFYeOXPh0ZXGA6fOfPyciLz4P54OmQL794lSjnEAAB11
Wvbj8t4vC6cWWnfNqlmvzdQb9blW+yBegLHHtD642xFLzIrZLcwYw7MnZ3u9
CyJLIkqkJSIiLRF15hMrvd6CYQTfL5CFuTn5w47d3jA/P7/85drt/9ZPDFcP
LrUPpVqXubl63Vy6cbO5/fau+6nLmlmrV6rmCWnWt809aZ7YeuZP/vbKV+bH
tTSYMmLtOf0/3rjxt7UTNakMJgYRuV+kYtZNU0RM+5NUqyJSe/qp2cXFezs7
wXHBMz+7YQ8zRXQAgAlqaUh7IqvaTK0jnXqlYZoiIp0T7bG/Mv+bs6YpYopp
ihKxnxpoqd2u1VUVpQ6lOiMisvg7s+aMiIg6FDmUnc3j6ufXf/PXt3+8nXaF
NHtyttczRdp3tr+uVOPM2SfsxHD71tOm2Tq9vNTrmUG5oSJdS11f/T8PWx+b
nZ899Se1rfXWXmfvevPFFzt/Lodm41SjMVO7cXO7/W2lRA5eUe5xGmqnOrVT
phKpL5nqF7pLd8/csK6e+pXa6IyixBLVVUpGbtm/ffqPzn50oTFXEztbDLU0
2LtMv8FJdfp7VmCGmz05a8eF3d1d9+s7Ozsyuq8Jc08AQBFDQ9Qw0bW6UYrp
iijT/vumOfdAo9U+GFslqB+L+XF55m+eWZ5bbswsiCUttXvrYHPP2hYRU+Rz
n3yi8R8X7J9uvvn8f1778sErx2We/63zjQcaUpH5+fmdd3ZSWqfz8/O9nogo
w7gpIiIHvd5VEVNEfezh7aNXxB5Y2tNxwWlpqFbMrqjbf7Hz+Nxjz3zp+X9p
vbj59uaeuqEOzXMPnblx8/aNbzdNkb3vKLNi7r8zUMjig4t7b6vaR8y2KFM6
8uFm7YR5+3/dmT85YqmdcRpGr3xTqnZbjoiSSt2npcGS2kytn3hEVe2+DhVz
7DZ1EsPi4uLOYJsE+QAAJj40aPBBVywRS8yKiClimTIjter4Bgy7rf7xP3t8
4Qty7sO/NvfAgrJURzrtw45UREzpPNCqnuhuyu0r155r/b0cXBOnVj6/cr4x
1/jiF7743N8/Jw/59DTUlxh6dgP7N/7uG7t7u6tfXd26efXhX1vautm0F0FE
DGPe+dq/pWGmWjcbV9989uxvn/n620+KSFNt2olh8+ZW69vKbl3wLcFOBvPz
8zUxW6LU4W73RGv5xLmRdbA9TkNgDd1RXbsWN+Wo80r/uQmR+0U+6Fb77Qyi
LBEx7ScwA8q0V5SnjcHtG3/3jZS2EQBgQkLDByLSFUtEVLUiXSViiWnaFU6o
y0o7N7RENj960/zEzaVfOtVSB2ZFlMjy3LI503z+le3WtqjXBhPDb51vnGhs
rG1sv7a9/NFlU0ypyOKDi3rbG5yK8EdbP2r+pLm7t9t8sykiv3xOer3mL587
/jxj6kJLqhWzWq12LXXz4Pn2oShRjZnaww+dvnrzdvvbqvOKeFoXRq2ompht
EfNNudXYHHlfqWKKKLNiqqCWBvt+kHm01xw9aen8a3VrM0d9GkTZT1WYFZO2
AgCYGvfpLGzs0xOuxNC1pGspEdXPLVHSy/7+/sE1ab0m6gfS/N5efa6mRJZr
y6dPNDZf9UsMK+cbJxpP/c1Tt35w68b3brQOWmc/ebYx11h6aGl+fl57Ymgd
tJzEcOWbV+JcK1dElPo3vV59piZi2olh6YGF51/aan+7c/CKCpt1KiKWUu9J
e09ttW4EtTSIqSwllum/1SzVVsrstxwc9Ze0R3Ny/evMgV49amkQ7i8AwLS1
NGQzit9gYnBVJ92ja+touWF+ft4UqYvsysHZjyw3avL89zb92xjmGk997alb
N29tvbrVarWqM1URufDIhasvX9XV3uAkhvZBe/cnu4kSQ3+LmP/PMGq1uhyI
KWZtpt62OgffVvLD8W0Mx2vpnf3FBxfND4u05OA7anxLg7ux5+i+g0hVWapq
jxzl9GmwhnPe0ZiSR30alCWiqc8sAKAwoSFqy0GMexpOYrBU17kAPbowFbvJ
IWJ2sXODEmmI3JJtU8S/jWGu8dTXnrp58+bWq1utd1u77+1WzapYsvXDrZVH
VjZf2kzev8HdxuCbGPb39w0jyp+oSPuwvd++oywxK9X6jHSUksPuE8+tfP2v
NucfnA+fG5SlTDE7e0dtCWNaGuRobMeuE+dE2mJJW3VEFo77NJj937LvWtjj
T9iZw9WnQak08igjVQNAEUNDxLP2yDppZGLoiiWmKLvaiVEl7L+zP/9gv72h
LUeJ4Z19u5DzF843Hmhs/NnGre/e2vrhUWKoVLuqu7u3KxW5/cPbZ8+evfWD
W/bzFOFr4oHE8OCINoajj+F81AiLZknnbmfzzasy0zVNc2GmVjPrplnbfq/5
x186d6Wytfig90GDwOAgYpp731EjP8NRS0P/p1b7KA2IPTq1WF1Tjt4j/bse
9jMX7n/tlganT4Oyjvo0WP7bzjCMUUux9d2tz//u5zcubhARAGDCQ0PUNgar
f3u7229OsP/txwglRy0Nsdi5wY4d/cRgtzH8Vv9ZiVs/uLX16lan3anOVBsn
Gp3DTrVSNWfM1nstu0JaWloSS+QXJNIVvJMY/mW/d/rv7/ztz3a8iSHZZmnv
qme/9XX7joD73xtW88wDc/KHB/OL8/s7+2M/Xu3DNXs0i8CM0m9pUGIPsWCK
1RGRrn3PSHVElF2C3W7RTwlK9dODiP21ksE+DZaK1KfBCRBb392yv/j93/t9
DlEAKEdosAf8sbp2IOgnhn4t4kkMdpt2N97fsXND/2r+yPaPt7dle/OfNp1X
NlY3Op3O1g+2Onc7Sz+7tPXdrebrzSQjAdiJ4fF/3u3e7fzyD5sbJ1p6EoPd
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
QmCC

--------------Boundary-00=_PZ2ATTANUUOKC41AD9EH--
Comment 7 Stephan Kulow 2000-12-09 14:18:25 UTC
Erik Sigra wrote:
> 
> onsdagen den 29 november 2000 14:19 skrev Erik Sigra:
> > onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> > > onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > > > Erik Sigra wrote:
> > > > > Package: kpat
> > > > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > > > Severity: wishlist
> > > > > Compiler: gcc version 2.95.2 19991024 (release)
> > > > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > > > >
> > > > > The other Klondike implementations have features that automatically
> > > > > clean away cards that are no longer needed. This is needed in Kpat
> > > > > too to avoid the boring cleanup
> > > >
> > > > I already implemented moving on double click. I plan to implement
> > > > autodrop but
> > > > I somehow miss a good logic for "when no longer needed". Moving them up
> > > > when
> > > > all cards are covered is a bit unclever :)
> [...]
> > I don't know what the 4 destination stacks where all cards shoud en up
> > are called so i just call them destination stacks. They have the value 0
> > in the beginning of a game and the value 13 in the end of a game. So here
> > is the formula (unless I'm wrong):
> >
> > A HEART card with the value N is no longer needed when:
> >
> > ([ the CLUB destination stack has reached at least the value N - 1] OR
> > [{the CLUB destination stack has reached at value N - 2} AND {the CLUB with
> > the value N - 1 is no longer needed}])
> > AND
> > ([ the SPADE destination stack has reached at least the value N - 1] OR
> > [{the SPADE destination stack has reached at value N - 2} AND {the SPADES
> > card with the value N - 1 is no longer needed}])
> >
> > Seems like this became somewhat recursive. Analog formula is applicable for
> > CLUB SPADE and DIAMOND.
> 
> I just saw you have started to implement autoclean now. Great! But there are
> 2 little glitches:
> 1. It breaks undo (serious).
> 2. It doesn't autoclean enough; see the rules above (not so serious ought
> to be easy to fix). Here is a screenshot where the diamond 4 should have been
> autocleaned:
> 
No the club 3 is missing. it is not moving red 4 unless all black 3s are up.

The breakage of undo is a know problem

Stephan

-- 
Programmers heed this: If someone starts asking you about
agricultural genomes it's likely time to get a handler. 
                                zdnet.com about Torvalds
Comment 8 esigra 2000-12-09 14:35:28 UTC
lördagen den  9 december 2000 15:18 skrev Stephan Kulow:
> Erik Sigra wrote:
> > onsdagen den 29 november 2000 14:19 skrev Erik Sigra:
> > > onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> > > > onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > > > > Erik Sigra wrote:
> > > > > > Package: kpat
> > > > > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > > > > Severity: wishlist
> > > > > > Compiler: gcc version 2.95.2 19991024 (release)
> > > > > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > > > > >
> > > > > > The other Klondike implementations have features that
> > > > > > automatically clean away cards that are no longer needed. This is
> > > > > > needed in Kpat too to avoid the boring cleanup
> > > > >
> > > > > I already implemented moving on double click. I plan to implement
> > > > > autodrop but
> > > > > I somehow miss a good logic for "when no longer needed". Moving
> > > > > them up when
> > > > > all cards are covered is a bit unclever :)
> >
> > [...]
> >
> > > I don't know what the 4 destination stacks where all cards shoud en
> > > up are called so i just call them destination stacks. They have the
> > > value 0 in the beginning of a game and the value 13 in the end of a
> > > game. So here is the formula (unless I'm wrong):
> > >
> > > A HEART card with the value N is no longer needed when:
> > >
> > > ([ the CLUB destination stack has reached at least the value N - 1] OR
> > > [{the CLUB destination stack has reached at value N - 2} AND {the CLUB
> > > with the value N - 1 is no longer needed}])
> > > AND
> > > ([ the SPADE destination stack has reached at least the value N - 1] OR
> > > [{the SPADE destination stack has reached at value N - 2} AND {the
> > > SPADES card with the value N - 1 is no longer needed}])
> > >
> > > Seems like this became somewhat recursive. Analog formula is applicable
> > > for CLUB SPADE and DIAMOND.
> >
> > I just saw you have started to implement autoclean now. Great! But there
> > are 2 little glitches:
> > 1. It breaks undo (serious).
> > 2. It doesn't autoclean enough; see the rules above (not so serious
> > ought to be easy to fix). Here is a screenshot where the diamond 4 should
> > have been autocleaned:
>
> No the club 3 is missing. it is not moving red 4 unless all black 3s are
> up.

It should move up the red 4 even if the club 3 is missing since the red 4 is 
no longer needed.
Comment 9 Stephan Kulow 2000-12-09 14:43:29 UTC
Erik Sigra wrote:
> 
> lördagen den  9 december 2000 15:18 skrev Stephan Kulow:
> > Erik Sigra wrote:
> > > onsdagen den 29 november 2000 14:19 skrev Erik Sigra:
> > > > onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> > > > > onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > > > > > Erik Sigra wrote:
> > > > > > > Package: kpat
> > > > > > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > > > > > Severity: wishlist
> > > > > > > Compiler: gcc version 2.95.2 19991024 (release)
> > > > > > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > > > > > >
> > > > > > > The other Klondike implementations have features that
> > > > > > > automatically clean away cards that are no longer needed. This is
> > > > > > > needed in Kpat too to avoid the boring cleanup
> > > > > >
> > > > > > I already implemented moving on double click. I plan to implement
> > > > > > autodrop but
> > > > > > I somehow miss a good logic for "when no longer needed". Moving
> > > > > > them up when
> > > > > > all cards are covered is a bit unclever :)
> > >
> > > [...]
> > >
> > > > I don't know what the 4 destination stacks where all cards shoud en
> > > > up are called so i just call them destination stacks. They have the
> > > > value 0 in the beginning of a game and the value 13 in the end of a
> > > > game. So here is the formula (unless I'm wrong):
> > > >
> > > > A HEART card with the value N is no longer needed when:
> > > >
> > > > ([ the CLUB destination stack has reached at least the value N - 1] OR
> > > > [{the CLUB destination stack has reached at value N - 2} AND {the CLUB
> > > > with the value N - 1 is no longer needed}])
> > > > AND
> > > > ([ the SPADE destination stack has reached at least the value N - 1] OR
> > > > [{the SPADE destination stack has reached at value N - 2} AND {the
> > > > SPADES card with the value N - 1 is no longer needed}])
> > > >
> > > > Seems like this became somewhat recursive. Analog formula is applicable
> > > > for CLUB SPADE and DIAMOND.
> > >
> > > I just saw you have started to implement autoclean now. Great! But there
> > > are 2 little glitches:
> > > 1. It breaks undo (serious).
> > > 2. It doesn't autoclean enough; see the rules above (not so serious
> > > ought to be easy to fix). Here is a screenshot where the diamond 4 should
> > > have been autocleaned:
> >
> > No the club 3 is missing. it is not moving red 4 unless all black 3s are
> > up.
> 
> It should move up the red 4 even if the club 3 is missing since the red 4 is
> no longer needed.
Sorry but I won't implement that as it's almost impossible to explain to someone
starting the game. I only autodrop cards that are _obviously_ no longer needed.

Greetings Stephan

-- 
Programmers heed this: If someone starts asking you about
agricultural genomes it's likely time to get a handler. 
                                zdnet.com about Torvalds
Comment 10 esigra 2000-12-09 15:06:25 UTC
lördagen den  9 december 2000 15:43 skrev Stephan Kulow:
> Erik Sigra wrote:
> > lördagen den  9 december 2000 15:18 skrev Stephan Kulow:
> > > Erik Sigra wrote:
> > > > onsdagen den 29 november 2000 14:19 skrev Erik Sigra:
> > > > > onsdagen den 29 november 2000 13:14 skrev Erik Sigra:
> > > > > > onsdagen den 29 november 2000 13:26 skrev Stephan Kulow:
> > > > > > > Erik Sigra wrote:
> > > > > > > > Package: kpat
> > > > > > > > Version: 0.7.4 (KDE 2.0 >= 20001117)
> > > > > > > > Severity: wishlist
> > > > > > > > Compiler: gcc version 2.95.2 19991024 (release)
> > > > > > > > OS: Linux 2.4.0-test11 i686 (compiled sources)
> > > > > > > >
> > > > > > > > The other Klondike implementations have features that
> > > > > > > > automatically clean away cards that are no longer needed.
> > > > > > > > This is needed in Kpat too to avoid the boring cleanup
> > > > > > >
> > > > > > > I already implemented moving on double click. I plan to
> > > > > > > implement autodrop but
> > > > > > > I somehow miss a good logic for "when no longer needed". Moving
> > > > > > > them up when
> > > > > > > all cards are covered is a bit unclever :)
> > > >
> > > > [...]
> > > >
> > > > > I don't know what the 4 destination stacks where all cards shoud
> > > > > en up are called so i just call them destination stacks. They
> > > > > have the value 0 in the beginning of a game and the value 13 in the
> > > > > end of a game. So here is the formula (unless I'm wrong):
> > > > >
> > > > > A HEART card with the value N is no longer needed when:
> > > > >
> > > > > ([ the CLUB destination stack has reached at least the value N - 1]
> > > > > OR [{the CLUB destination stack has reached at value N - 2} AND
> > > > > {the CLUB with the value N - 1 is no longer needed}])
> > > > > AND
> > > > > ([ the SPADE destination stack has reached at least the value N -
> > > > > 1] OR [{the SPADE destination stack has reached at value N - 2} AND
> > > > > {the SPADES card with the value N - 1 is no longer needed}])
> > > > >
> > > > > Seems like this became somewhat recursive. Analog formula is
> > > > > applicable for CLUB SPADE and DIAMOND.
> > > >
> > > > I just saw you have started to implement autoclean now. Great! But
> > > > there are 2 little glitches:
> > > > 1. It breaks undo (serious).
> > > > 2. It doesn't autoclean enough; see the rules above (not so serious
> > > > ought to be easy to fix). Here is a screenshot where the diamond 4
> > > > should have been autocleaned:
> > >
> > > No the club 3 is missing. it is not moving red 4 unless all black 3s
> > > are up.
> >
> > It should move up the red 4 even if the club 3 is missing since the red
> > 4 is no longer needed.
>
> Sorry but I won't implement that as it's almost impossible to explain to
> someone starting the game. I only autodrop cards that are _obviously_ no
> longer needed.

Well it can't be "almost impossible to explain" since I know it and I'm 
not exaclty brilliant.

You ever heard of that nice concept called "options"? How about a slider 
called "automation level" or something like that?

(Seems like this became another dumbing-down-vs.-advanced-features 
discussion.)
Comment 11 Stephan Kulow 2000-12-09 15:20:37 UTC
Erik Sigra wrote:
> 
> >
> > Sorry but I won't implement that as it's almost impossible to explain to
> > someone starting the game. I only autodrop cards that are _obviously_ no
> > longer needed.
> 
> Well it can't be "almost impossible to explain" since I know it and I'm
> not exaclty brilliant.
> 
> You ever heard of that nice concept called "options"? How about a slider
> called "automation level" or something like that?
> 
> (Seems like this became another dumbing-down-vs.-advanced-features
> discussion.)

I won't stop you from implementing it and enhancing the docu

Greetings Stephan

-- 
Programmers heed this: If someone starts asking you about
agricultural genomes it's likely time to get a handler. 
                                zdnet.com about Torvalds
Comment 12 esigra 2001-07-29 21:32:44 UTC
--------------Boundary-00=_KU793H7N5DANGKLD6UAO
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

Here are a couple of small patches that makes klondike more amitious about 
finding out which cards can be cleaned away. It touches as little as possible 
but should still be enought to close #16214.
--------------Boundary-00=_KU793H7N5DANGKLD6UAO
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="klondike.h.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="klondike.h.diff"

LS0tIGtsb25kaWtlLmgub3JpZwlTdW4gSnVsIDI5IDIwOjM1OjU5IDIwMDEK
KysrIGtsb25kaWtlLmgJU3VuIEp1bCAyOSAyMDo0NzoxMyAyMDAxCkBAIC02
Miw0ICs2Miw2IEBACiAgICAgRGVjayogZGVjazsKICAgICBDYXJkOjpWYWx1
ZXMgbG93ZXN0X2NhcmRbMl07CisgICAgQ2FyZDo6VmFsdWVzIHRhcmdldF90
b3BzWzRdOworICAgIGJvb2wgbm9Mb25nZXJOZWVkZWQoY29uc3QgQ2FyZCAm
KTsKIH07CiAK

--------------Boundary-00=_KU793H7N5DANGKLD6UAO
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="klondike.cpp.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="klondike.cpp.diff"

LS0tIGtsb25kaWtlLmNwcC5vcmlnCVN1biBKdWwgMjkgMjA6MzU6MjAgMjAw
MQorKysga2xvbmRpa2UuY3BwCVN1biBKdWwgMjkgMjE6NDU6MDcgMjAwMQpA
QCAtNjgsNCArNjgsMzggQEAKIH0KIAorYm9vbCBLbG9uZGlrZTo6bm9Mb25n
ZXJOZWVkZWQoY29uc3QgQ2FyZCAmIHQpCit7CisgIGlmICh0LnZhbHVlKCkg
PD0gQ2FyZDo6VHdvKSByZXR1cm4gdHJ1ZTsKKworICAvLyAgZmluZCB0aGUg
MiBzdWl0cyBvZiBvcHBvc2l0ZSBjb2xvcgorICBDYXJkOjpTdWl0cyBhLCBi
OworICBzd2l0Y2ggKHQuc3VpdCgpKSB7CisgIGNhc2UgKENhcmQ6OkNsdWJz
KTogY2FzZSAoQ2FyZDo6U3BhZGVzKToKKyAgICBhID0gQ2FyZDo6RGlhbW9u
ZHM7CisgICAgYiA9IENhcmQ6OkhlYXJ0czsKKyAgICBicmVhazsKKyAgZGVm
YXVsdDoKKyAgICBhID0gQ2FyZDo6Q2x1YnM7CisgICAgYiA9IENhcmQ6OlNw
YWRlczsKKyAgfQorCisKKyAgcmV0dXJuCisgICAgKCgodGFyZ2V0X3RvcHNb
YSAtIDFdID49IHQudmFsdWUoKSAtIDEpCisgICAgICBvcgorICAgICAgKCh0
YXJnZXRfdG9wc1thIC0gMV0gPj0gdC52YWx1ZSgpIC0gMikKKyAgICAgICBh
bmQgKG5vTG9uZ2VyTmVlZGVkKENhcmQoc3RhdGljX2Nhc3Q8Q2FyZDo6VmFs
dWVzPih0LnZhbHVlKCkgLSAxKSwgYSkpKQorICAgICAgICkKKyAgICAgICkK
KyAgICAgYW5kCisgICAgICgodGFyZ2V0X3RvcHNbYiAtIDFdID49IHQudmFs
dWUoKSAtIDEpCisgICAgICBvcgorICAgICAgKCh0YXJnZXRfdG9wc1tiIC0g
MV0gPj0gdC52YWx1ZSgpIC0gMikKKyAgICAgICBhbmQgKG5vTG9uZ2VyTmVl
ZGVkKENhcmQoc3RhdGljX2Nhc3Q8Q2FyZDo6VmFsdWVzPih0LnZhbHVlKCkg
LSAxKSwgYikpKQorICAgICAgICkKKyAgICAgICkKKyAgICAgKTsKK30KKwog
Ym9vbCBLbG9uZGlrZTo6dHJ5VG9Ecm9wKENhcmQgKnQpCiB7CkBAIC03NSw4
ICsxMDksOCBAQAogLy8gICAga2REZWJ1ZygxMTExMSkgPDwgInRyeVRvRHJv
cCAiIDw8IHQtPm5hbWUoKSA8PCBlbmRsOwogCi0gICAgYm9vbCBzaG91bGRk
cm9wID0gKHQtPnZhbHVlKCkgPD0gQ2FyZDo6VHdvIHx8IHQtPnZhbHVlKCkg
PD0gbG93ZXN0X2NhcmRbdC0+aXNSZWQoKSA/IDEgOiAwXSArIDEpOwogICAg
IFBpbGUgKnRndCA9IGZpbmRUYXJnZXQodCk7CiAgICAgaWYgKHRndCkgewot
ICAgICAgICBuZXdIaW50KG5ldyBNb3ZlSGludCh0LCB0Z3QsIHNob3VsZGRy
b3ApKTsKKyAgICAgICAgbmV3SGludChuZXcgTW92ZUhpbnQodCwgdGd0LAor
CQkJICAgICBub0xvbmdlck5lZWRlZChDYXJkKHQtPnZhbHVlKCksIHQtPnN1
aXQoKSkpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTg2
LDUgKzEyMCw2IEBACiB2b2lkIEtsb25kaWtlOjpnZXRIaW50cygpIHsKIAot
ICAgIGludCB0b3BzWzRdID0gezAsIDAsIDAsIDB9OworICAgIHRhcmdldF90
b3BzWzBdID0gdGFyZ2V0X3RvcHNbMV0gPSB0YXJnZXRfdG9wc1syXSA9IHRh
cmdldF90b3BzWzNdID0KKyAgICAgIENhcmQ6Ok5vbmU7CiAKICAgICBmb3Io
IGludCBpID0gMDsgaSA8IDQ7IGkrKyApCkBAIC05Miw5ICsxMjcsNiBAQAog
ICAgICAgICBDYXJkICpjID0gdGFyZ2V0W2ldLT50b3AoKTsKICAgICAgICAg
aWYgKCFjKSBjb250aW51ZTsKLSAgICAgICAgdG9wc1tjLT5zdWl0KCkgLSAx
XSA9IGMtPnZhbHVlKCk7CisgICAgICAgIHRhcmdldF90b3BzW2MtPnN1aXQo
KSAtIDFdID0gYy0+dmFsdWUoKTsKICAgICB9Ci0KLSAgICBsb3dlc3RfY2Fy
ZFswXSA9IHN0YXRpY19jYXN0PENhcmQ6OlZhbHVlcz4oUU1JTih0b3BzWzFd
LCB0b3BzWzJdKSk7IC8vIHJlZAotICAgIGxvd2VzdF9jYXJkWzFdID0gc3Rh
dGljX2Nhc3Q8Q2FyZDo6VmFsdWVzPihRTUlOKHRvcHNbMF0sIHRvcHNbM10p
KTsgLy8gYmxhY2sKIAogLy8gICAga2REZWJ1ZygxMTExMSkgPDwgInN0YXJ0
QXV0b0Ryb3AgcmVkOiIgPDwgbG93ZXN0X2NhcmRbMF0gPDwgIiBibGFjazoi
IDw8IGxvd2VzdF9jYXJkWzFdIDw8IGVuZGw7Cg==

--------------Boundary-00=_KU793H7N5DANGKLD6UAO--
Comment 13 esigra 2001-07-29 22:01:38 UTC
--------------Boundary-00=_Q6998ZK5VSVFWGWRYGWP
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

söndagen den 29 juli 2001 23:32 skrev Erik Sigra:
> Here are a couple of small patches that makes klondike more amitious about
> finding out which cards can be cleaned away. It touches as little as
> possible but should still be enought to close #16214.

Sorry the klondike.h.diff didn't remove a line it should have removed. An 
old variable that I made unnecessary. The other patch should be OK.

--- klondike.h.orig     Sun Jul 29 23:42:29 2001
+++ klondike.h  Sun Jul 29 23:42:33 2001
@@ -615 +616 @@
     Pile *pile;
     Deck* deck;
-    Card::Values lowest_card[2];
+    Card::Values target_tops[4];
+    bool noLongerNeeded(const Card &);
 };
--------------Boundary-00=_Q6998ZK5VSVFWGWRYGWP
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="klondike.h.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="klondike.h.diff"

LS0tIGtsb25kaWtlLmgub3JpZwlTdW4gSnVsIDI5IDIzOjQyOjI5IDIwMDEK
KysrIGtsb25kaWtlLmgJU3VuIEp1bCAyOSAyMzo0MjozMyAyMDAxCkBAIC02
MSw1ICs2MSw2IEBACiAgICAgUGlsZSAqcGlsZTsKICAgICBEZWNrKiBkZWNr
OwotICAgIENhcmQ6OlZhbHVlcyBsb3dlc3RfY2FyZFsyXTsKKyAgICBDYXJk
OjpWYWx1ZXMgdGFyZ2V0X3RvcHNbNF07CisgICAgYm9vbCBub0xvbmdlck5l
ZWRlZChjb25zdCBDYXJkICYpOwogfTsKIAo=

--------------Boundary-00=_Q6998ZK5VSVFWGWRYGWP--
Comment 14 esigra 2003-02-02 21:41:07 UTC
Created attachment 867 [details]
A patch for bug 16214 (kpat)

Here is an updated patch that applies to kdegames-3.1 without fuzz. It is now
carefully commented.
Comment 15 Stephan Kulow 2003-03-14 15:30:43 UTC
Subject: kdegames/kpat

CVS commit by coolo: 

applied patch and added contribution to about data (the oldest standing kpat bug :)
CCMAIL: 16214-close@bugs.kde.org


  M +65 -8     klondike.cpp   1.39
  M +2 -1      klondike.h   1.16
  M +1 -0      main.cpp   1.31