{
int curr = island_countbridges(is), nspc = is->count - curr, nsurrspc;
int i, poss;
- grid_type v;
struct island *is_orth;
if (nspc < 0) {
int ifree, dx = is->adj.points[i].dx;
if (!is->adj.points[i].off) continue;
- v = GRID(is->state, is->adj.points[i].x, is->adj.points[i].y);
poss = POSSIBLES(is->state, dx,
is->adj.points[i].x, is->adj.points[i].y);
if (poss == 0) continue;
return 0.0F;
}
+static int game_is_solved(game_state *state)
+{
+ return state->completed;
+}
+
static int game_timing_state(game_state *state, game_ui *ui)
{
return TRUE;
int ink = print_mono_colour(dr, 0);
int paper = print_mono_colour(dr, 1);
int x, y, cx, cy, i, nl;
- int loff = ts/8;
+ int loff;
grid_type grid;
/* Ick: fake up `ds->tilesize' for macro expansion purposes */
/* I don't think this wants a border. */
/* Bridges */
+ loff = ts / (8 * sqrt((state->params.maxb - 1)));
print_line_width(dr, ts / 12);
for (x = 0; x < state->w; x++) {
for (y = 0; y < state->h; y++) {
if (grid & G_ISLAND) continue;
if (grid & G_LINEV) {
- if (nl > 1) {
- draw_line(dr, cx+ts/2-loff, cy, cx+ts/2-loff, cy+ts, ink);
- draw_line(dr, cx+ts/2+loff, cy, cx+ts/2+loff, cy+ts, ink);
- } else {
- draw_line(dr, cx+ts/2, cy, cx+ts/2, cy+ts, ink);
- }
+ for (i = 0; i < nl; i++)
+ draw_line(dr, cx+ts/2+(2*i-nl+1)*loff, cy,
+ cx+ts/2+(2*i-nl+1)*loff, cy+ts, ink);
}
if (grid & G_LINEH) {
- if (nl > 1) {
- draw_line(dr, cx, cy+ts/2-loff, cx+ts, cy+ts/2-loff, ink);
- draw_line(dr, cx, cy+ts/2+loff, cx+ts, cy+ts/2+loff, ink);
- } else {
- draw_line(dr, cx, cy+ts/2, cx+ts, cy+ts/2, ink);
- }
+ for (i = 0; i < nl; i++)
+ draw_line(dr, cx, cy+ts/2+(2*i-nl+1)*loff,
+ cx+ts, cy+ts/2+(2*i-nl+1)*loff, ink);
}
}
}
game_redraw,
game_anim_length,
game_flash_length,
+ game_is_solved,
TRUE, FALSE, game_print_size, game_print,
FALSE, /* wants_statusbar */
FALSE, game_timing_state,