11 int icmp(const void *ap, const void *bp) {
12 struct HL_hex const *a;
13 struct HL_hex const *b;
18 if (a->x < b->x) return -1;
19 if (a->x > b->x) return 1;
20 if (a->y < b->y) return -1;
21 if (a->y > b->y) return 1;
26 void sort(struct HL_hex *r, int ct) {
27 qsort(r, ct, sizeof *r, icmp);
33 struct HL_hex range[32];
34 struct HL_hex testrange[32];
38 /* printf("range = 1 from 3,3\n"); */
39 start = HL_hex_xy(3,3);
40 count = HL_hexes_at_range(start, 1, range, 0);
41 ok(count == 6, "6 hexes at range 1");
42 count = HL_hexes_at_range(start, 1, range, count);
44 testrange[0] = HL_hex_xy(3,2);
45 testrange[1] = HL_hex_xy(3,4);
46 testrange[2] = HL_hex_xy(4,3);
47 testrange[3] = HL_hex_xy(4,2);
48 testrange[4] = HL_hex_xy(2,3);
49 testrange[5] = HL_hex_xy(2,2);
51 for (i = 0; i < count; i++) {
52 ok(HL_hex_eq(&range[i], &testrange[i]), "3, 3 range 1 hex %d", testrange[i]);
55 start = HL_hex_xy(0,3);
56 count = HL_hexes_at_range(start, 1, range, 0);
57 ok(count == 6, "6 hexes at range1 from 0,3");
59 start = HL_hex_xy(-1,5);
60 count = HL_hexes_at_range(start, 1, range, 0);
61 ok(count == 6, "6 hexes at range1 from -1,5");
63 start = HL_hex_xy(-2,3);
64 count = HL_hexes_at_range(start, 1, range, 0);
65 ok(count == 6, "6 hexes at range1 from -2,3");
67 start = HL_hex_xy(3,3);
68 count = HL_hexes_at_range(start, 2, range, 0);
69 ok(count == 12, "6 hexes at range1 from 3,3");