@Mir3k, post #1
@Mir3k, post #1
czcionke zakosiłem z innej gry Last Minute Creations.:D
@tukinem, post #9
BOOL markAdjacentTiles(UWORD x, UWORD y, UWORD endX, UWORD endY, UWORD incomingDirection) { if (x > 0 && incomingDirection!=DIRECTION_RIGHT) { logWrite("Going left from %d %d to %d %d", x, y, x - 1, y); if (analyzeTile(x - 1, y, endX, endY, DIRECTION_LEFT)) { return TRUE; } } if (x < BOARD_SIZE - 1 && incomingDirection!=DIRECTION_LEFT) { logWrite("Going RIGHT from %d %d to %d %d", x, y, x + 1, y); if (analyzeTile(x + 1, y, endX, endY, DIRECTION_RIGHT)) { return TRUE; } } if (y > 0 && incomingDirection!=DIRECTION_DOWN) { logWrite("Going UP from %d,%d to %d,%d", x, y, x, y - 1); if (analyzeTile(x, y - 1, endX, endY, DIRECTION_UP)) { return TRUE; } } if (y < BOARD_SIZE - 1 && incomingDirection!=DIRECTION_UP) { logWrite("Going DOWN from %d %d to %d %d", x, y, x, y + 1); if (analyzeTile(x, y + 1, endX, endY, DIRECTION_DOWN)) { return TRUE; } } return FALSE; } BOOL canBallBeMoved(UWORD startX, UWORD startY, UWORD endX, UWORD endY) { for (int i = 0; i < BOARD_SIZE; ++i) { for (int j = 0; j < BOARD_SIZE; ++j) { board[i][j]->IsAlreadyAnalyzed = FALSE; } } board[startX][startY]->IsAlreadyAnalyzed = TRUE; return markAdjacentTiles(startX, startY, endX, endY, DIRECTION_START); } BOOL analyzeTile(UWORD x, UWORD y, UWORD endX, UWORD endY, UWORD direction) { if (x == endX && y == endY) { return TRUE; } if (!board[x][y]->IsAlreadyAnalyzed) { board[x][y]->IsAlreadyAnalyzed = TRUE; if (board[x][y]->BallColor == NO_BALL) { return markAdjacentTiles(x, y, endX, endY, direction); } else return FALSE; } return FALSE; }
@miau, post #3
Nie możesz jej ruszyć na lewą stronę, bo zrobiłeś mur. Dla kulki musi być przejście.
@tukinem, post #5
Brakowało tego na Ami.