[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdegames/kpat/patsolve
From: Stephan Kulow <coolo () kde ! org>
Date: 2011-01-26 10:11:44
Message-ID: 20110126101144.E49CEAC8BA () svn ! kde ! org
[Download RAW message or body]
SVN commit 1217190 by coolo:
find more hints to solve more games
BUG: 185211
M +3 -3 patsolve.cpp
M +8 -6 spidersolver.cpp
--- trunk/KDE/kdegames/kpat/patsolve/patsolve.cpp #1217189:1217190
@@ -563,20 +563,20 @@
if (l == NULL) {
if (Pilenum >= NPILES ) {
Status = UnableToDetermineSolvability;
- qDebug() << "out of piles";
+ //qDebug() << "out of piles";
return -1;
}
l = mm_allocate(BUCKETLIST);
if (l == NULL) {
Status = UnableToDetermineSolvability;
- qDebug() << "out of buckets";
+ //qDebug() << "out of buckets";
return -1;
}
l->pile = new_array(quint8, Wlen[w] + 1);
if (l->pile == NULL) {
Status = UnableToDetermineSolvability;
MemoryManager::free_ptr(l);
- qDebug() << "out of memory";
+ //qDebug() << "out of memory";
return -1;
}
--- trunk/KDE/kdegames/kpat/patsolve/spidersolver.cpp #1217189:1217190
@@ -298,8 +298,10 @@
if ( l > 0 ) {
card_t card_on_top = W[i][Wlen[i]-l];
- if ( RANK( card ) != RANK( card_on_top ) + 1 )
+ //printcard(card_on_top, stderr);
+ if ( RANK( card ) != RANK( card_on_top ) + 1 ) {
break;
+ }
if ( SUIT( card ) != SUIT( card_on_top ) )
break;
}
@@ -381,7 +383,7 @@
if ( conti[j]+l+1 != 13 || conti[i]>conti[j]+l )
{
card_t card_below = W[i][Wlen[i]-l-2];
- if ( SUIT( card_below ) != SUIT( card ) )
+ if ( SUIT( card_below ) != SUIT( card ) || \
RANK(card_below) != RANK(card) + 1 ) {
foundgood = true;
} else {
@@ -401,19 +403,19 @@
mp->pri = qMin( 127, mp->pri + 2 );
/* and now check what sequence we open */
- int conti_pos = l+1;
+ int conti_pos = l;
for ( ; conti_pos < Wlen[i]-1; ++conti_pos )
{
- card_t top = W[i][Wlen[i]-l-2];
card_t theone = W[i][Wlen[i]-conti_pos-1];
card_t below = W[i][Wlen[i]-conti_pos-2];
#if 0
- printcard( top, stderr );
+ fprintf(stderr, "checking pile%d len:%d prio:%d ", i, l, mp->pri);
+ printcard( card, stderr );
printcard( theone, stderr );
printcard( below, stderr );
fputc( '\n', stderr );
#endif
- if ( SUIT( top ) != SUIT( below ) || DOWN( below ) )
+ if ( SUIT( card ) != SUIT( below ) || DOWN( below ) )
break;
if ( RANK( theone ) !=
RANK( below ) - 1)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic