Exemple #1
0
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();
}
Exemple #2
0
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;
}