+#include <stdio.h>
+#include <string.h>
+
#include "type.h"
#include "constant.h"
+board_t _board_french = {7, 7,
+ " XXX "
+ " XXXXX "
+ "XXXOXXX"
+ "XXXXXXX"
+ "XXXXXXX"
+ " XXXXX "
+ " XXX "};
+
+board_t _board_german = {9, 9,
+ " XXX "
+ " XXX "
+ " XXX "
+ "XXXXXXXXX"
+ "XXXXOXXXX"
+ "XXXXXXXXX"
+ " XXX "
+ " XXX "
+ " XXX "};
+
+board_t _board_assymetric = {8, 9,
+ " XXX "
+ " XXX "
+ " XXX "
+ "XXXXXXXX"
+ "XXXOXXXX"
+ "XXXXXXXX"
+ " XXX "
+ " XXX "
+ " XXX "};
+
+board_t _board_english = {7, 7,
+ " XXX "
+ " XXX "
+ "XXXXXXX"
+ "XXXOXXX"
+ "XXXXXXX"
+ " XXX "
+ " XXX "};
+
+board_t _board_diamond = {9, 9,
+ " X "
+ " XXX "
+ " XXXXx "
+ " XXXXXXX "
+ "XXXXOXXXX"
+ " XXXXXXX "
+ " XXXXX "
+ " XXX "
+ " X "};
+
+board_t *getboard (char *name)
+{
+ board_t *pt = NULL;
+
+ if (strcmp (name, "french") == 0) {
+ pt = &_board_french;
+ } else if (strcmp (name, "german") == 0) {
+ pt = &_board_german;
+ } else if (strcmp (name, "assymetric") == 0) {
+ pt = &_board_assymetric;
+ } else if (strcmp (name, "english") == 0) {
+ pt = &_board_english;
+ } else if (strcmp (name, "diamond") == 0) {
+ pt = &_board_diamond;
+ } else if (strcmp (name, "list") == 0) {
+ printf ("board: french german assymetric english diamon\n");
+ pt = (board_t *)(-1);
+ }
+
+ return pt;
+}
+
/* vim: set ts=4 sw=4 et: */
#include "type.h"
+board_t *getboard (char *name);
+
#endif /* __CONSTANT_H__ */
/* vim: set ts=4 sw=4 et: */
char *progname = NULL;
char *version = "0.1";
-char *boardname = NULL;
+char *boardname = "french";
char *filename = NULL;
int xoffset = 1;
{
FILE *fd = ret ? stderr : stdout;
fprintf (fd, "usage: %s [-b board] [-f file] [-h] [-v level]\n", progname);
- fprintf (fd, " -b: board name (%s)\n", boardname);
+ fprintf (fd, " -b: board name (%s|list)\n", boardname);
fprintf (fd, " -h: help message\n");
fprintf (fd, " -f: file name (%s)\n", (filename) ? filename : "none");
fprintf (fd, " -v: verbose level (%d)\n", verbose);
/* load playground */
board_t *board = NULL;
if (filename) {
- } else if (filename) {
+ } else if (boardname) {
+ board = getboard (boardname);
+ if (board == (board_t *)(-1)) {
+ return 0;
+ }
}
if (board == NULL) {
return 1;
/* test: solitaire.exe -b 2>&1 | grep 'no board' */
/* test: solitaire.exe -b bogus 2>&1 | grep 'unkonwn board' */
+/* test: solitaire.exe -b list | grep 'board:' */
/* test: solitaire.exe -f 2>&1 | grep 'no file' */
/* test: solitaire.exe -f nofile.sol 2>&1 | grep "can't read file" */
/* test: solitaire.exe -f bogus.sol 2>&1 | grep 'incorrect file' */