chiark / gitweb /
I am again gormless! When I overhauled Solo's grid generator in
[sgt-puzzles.git] / list.c
1 /*
2  * list.c: List of puzzles.
3  */
4
5 #include "puzzles.h"
6
7 /*
8  * The available games can be most easily enumerated by searching
9  * for the line in each game source file saying "#define thegame
10  * <gamename>". Hence, the following piece of shell/Perl should
11  * regenerate this list automatically:
12
13 perl -ne '/^#define thegame (\S+)/ and $1 ne "nullgame" and print "extern const game $1;\n"' *.c
14 echo -e '\nconst game *gamelist[] = {'
15 perl -ne '/^#define thegame (\S+)/ and $1 ne "nullgame" and print "    &$1,\n"' *.c
16 echo -e '};\n\nconst int gamecount = lenof(gamelist);'
17
18  */
19
20 extern const game blackbox;
21 extern const game cube;
22 extern const game dominosa;
23 extern const game fifteen;
24 extern const game flip;
25 extern const game guess;
26 extern const game inertia;
27 extern const game lightup;
28 extern const game loopy;
29 extern const game map;
30 extern const game mines;
31 extern const game net;
32 extern const game netslide;
33 extern const game pattern;
34 extern const game pegs;
35 extern const game rect;
36 extern const game samegame;
37 extern const game sixteen;
38 extern const game slant;
39 extern const game solo;
40 extern const game twiddle;
41 extern const game untangle;
42
43 const game *gamelist[] = {
44     &blackbox,
45     &cube,
46     &dominosa,
47     &fifteen,
48     &flip,
49     &guess,
50     &inertia,
51     &lightup,
52     &loopy,
53     &map,
54     &mines,
55     &net,
56     &netslide,
57     &pattern,
58     &pegs,
59     &rect,
60     &samegame,
61     &sixteen,
62     &slant,
63     &solo,
64     &twiddle,
65     &untangle,
66 };
67
68 const int gamecount = lenof(gamelist);