void hint(void) { int d = 0, x = 0, y = 0; Brick *b = nil; if(level.c.d != -1) { if((b = bmatch(level.c)) != nil) { d = level.c.d; x = level.c.x; y = level.c.y; } } else for(d = Depth - 1; d >= 0; d--) for(y = 0; y < Ly; y++) for(x = 0; x < Lx; x++) if(level.board[d][x][y].which == TL && isfree(Cl(d,x,y)) && (b = bmatch(Cl(d,x,y))) != nil) goto Matched; Matched: if (b == nil) return; level.board[d][x][y].clicked = 1; b->clicked = 1; b->redraw = 1; updatelevel(); sleep(500); if(level.c.d == -1) level.board[d][x][y].clicked = 0; b->clicked = 0; b->redraw = 1; updatelevel(); sleep(500); level.board[d][x][y].clicked = 1; b->clicked = 1; b->redraw = 1; updatelevel(); sleep(500); if(level.c.d == -1) level.board[d][x][y].clicked = 0; b->clicked = 0; b->redraw = 1; updatelevel(); }
int canmove(void) { Click c; for(c.d = Depth - 1; c.d >= 0; c.d--) for(c.y = 0; c.y < Ly; c.y++) for(c.x = 0; c.x < Lx; c.x++) if(level.board[c.d][c.x][c.y].which == TL && isfree(c) && bmatch(c) != nil) return 1; return 0; }