summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--freecell.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/freecell.c b/freecell.c
index 0334edc..45aff26 100644
--- a/freecell.c
+++ b/freecell.c
@@ -171,10 +171,9 @@ static void moveSingle(uint dst, uint src) {
 	enq(dst, src);
 }
 
-static uint freeCells(uint cells[static Stacks], uint dst) {
+static uint freeCells(uint cells[static 4]) {
 	uint len = 0;
-	for (uint i = Cell; i < Stacks; ++i) {
-		if (i == dst) continue;
+	for (uint i = Cell; i < Tableau; ++i) {
 		if (!stacks[i].len) cells[len++] = i;
 	}
 	return len;
@@ -193,8 +192,8 @@ static uint moveDepth(uint src) {
 
 static void moveColumn(uint dst, uint src) {
 	uint depth;
-	uint cells[Stacks];
-	uint free = freeCells(cells, dst);
+	uint cells[4];
+	uint free = freeCells(cells);
 	for (depth = moveDepth(src); depth; --depth) {
 		if (free < depth-1) continue;
 		if (valid(dst, stacks[src].cards[stacks[src].len-depth])) break;