First draft
[babel] / babel.h
1 #ifndef BABEL_H
2 #define BABEL_H
3
4 /* Veinte anaqueles, a cinco largos anaqueles por lado, cubren todos los
5  * lados menos dos
6  */
7 #define SIDES_PER_CELL 4
8 #define SHELVES_PER_SIDE 5
9 #define SHELVES_PER_CELL (SHELVES_PER_SIDE*SIDES_PER_CELL)
10
11 /* cada anaquel encierra treinta y dos libros de formato uniforme */
12 #define BOOKS_PER_SHELF 32
13 /* cada libro es de cuatrocientas diez páginas */
14 #define PAGES_PER_BOOK 410
15 /* cada página, de cuarenta renglones */
16 #define LINES_PER_PAGE 40
17 /* cada renglón, de unas ochenta letras */
18 #define CHARS_PER_LINE 80
19
20 /* También hay letras en el dorso de cada libro */
21 /* FIXME: the amount of characters on the spine is not specified in the
22  * text. If we assume a square character matrix, then the maximum number
23  * of characters on the spine is possibly about the same as the number
24  * of lines per page, but that's a rather wild assumption (it's likely
25  * to be about twice as much)
26  */
27 /* TODO
28 #define CHARS_PER_SPINE LINES_PER_PAGE
29 */
30
31 #define CHARS_PER_PAGE (CHARS_PER_LINE*LINES_PER_PAGE)
32 #define CHARS_PER_BOOK (CHARS_PER_PAGE*PAGES_PER_BOOK)
33
34 /* el espacio, el punto, la coma, las veintidós letras del alfabeto */
35
36 /* to get an alphabet with 22 symbols, we use the letters of the latin
37  * alphabet which are also preset in the Esperanto alphabet (i.e. the
38  * Esperanto letters without diacritics). If this makes Zamenhof or
39  * Borges and his Kabalistic reference spin in his grave, we can use
40  * them to produce energy.
41  */
42
43 #define SYMBOLS 25
44 const char alphabet[] = " .,ABCDEFGHIJKLMNOPRSTUVZ";
45
46 #endif // BABEL_H