00001 #ifndef STDOMWESO_H
00002 #define STDOMWESO_H
00003
00004 #ifndef DATADIR
00005 #define DATADIR "."
00006 #endif
00007 #define DEFSTRINGIFY(x) #x
00008 #define DEFTOSTRING(x) DEFSTRINGIFY(x)
00009
00010 #define DATAFOLDER(x) DEFTOSTRING(DATADIR)"/"x
00011
00012
00013 #define AI_HUMAN 0
00014 #define AI_SIMPLE 1
00015 #define AI_NEGAMAX 2
00016 #define AI_ALPHABETA 3
00017 #define AI_SCOUT 4
00018
00019
00020 #define AI_MAXDEPTH 15
00021
00022 #define AI_HUMAN_EVAL 0
00023 #define AI_RANDOM_EVAL 1
00024 #define AI_MATERIAL_EVAL 2
00025 #define AI_DISPERSION_EVAL 3
00026 #define AI_MOBILITY_EVAL 4
00027 #define AI_REACH_EVAL 5
00028
00029
00030 #define AI_COMBINED_EVAL 6
00031
00032
00033 #define PL_PLAYER1 0
00034 #define PL_PLAYER2 1
00035
00036 #define CUR_WIDTH 46
00037 #define CUR_HEIGHT 60
00038
00039 #define CELL_WIDTH 58
00040 #define CELL_HEIGHT 78
00041 #define CELL_BORDER 4
00042 #define CELL_SPACING 4
00043
00044 #define CELL_STATUS_NORM 0
00045 #define CELL_STATUS_GREEN 1
00046 #define CELL_STATUS_RED 2
00047 #define CELL_STATUS_CYAN 3
00048
00049 #define CELL_ACTION_CANCEL 4
00050 #define CELL_ACTION_MOVEL 5
00051 #define CELL_ACTION_MOVER 6
00052 #define CELL_ACTION_SELECT 7
00053 #define CELL_ACTION_CAPTURE 8
00054 #define CELL_ACTION_PUT 9
00055 #define CELL_ACTION_TAKE 10
00056 #define CELL_ACTION_NONE 11
00057
00058 #define BRD_NUM_SIDES 2
00059 #define BRD_ROWS_PER_PLAYER 2
00060 #define BRD_MAX_COLS_PER_PLAYER 8
00061 #define BRD_MAX_ROWS_PER_PLAYER 2
00062 #define BRD_SIDE_NORTH 0
00063 #define BRD_SIDE_SOUTH 1
00064 #define BRD_INNER_ROW 0
00065 #define BRD_OUTER_ROW 1
00066
00067
00068 #define BRD_STATUS_READY 0
00069 #define BRD_STATUS_SOWING 1
00070 #define BRD_STATUS_ERRORMOVE 2
00071 #define BRD_STATUS_CHAINMOVE 3
00072 #define BRD_STATUS_CAPTURE 4
00073 #define BRD_STATUS_REENTER_CAPTURE 5
00074 #define BRD_STATUS_REVSOWING 6
00075 #define BRD_STATUS_PCANNOTMOVE 7
00076
00077 #define BRD_SOWING_SPEED_USLOW 200
00078 #define BRD_SOWING_SPEED_SLOW 135
00079 #define BRD_SOWING_SPEED_NORM 75
00080 #define BRD_SOWING_SPEED_FAST 30
00081 #define BRD_SOWING_SPEED_ULTRA 0
00082
00083 #define BRD_MAX_UNDO_MOVES 100
00084
00085 #define OWGFX_BACKGROUND 0
00086 #define OWGFX_CURSOR 1
00087 #define OWGFX_CELL 2
00088 #define OWGFX_PLAYERMARKER 0
00089 #define OWGFX_GAMEWON 1
00090
00091 #define OWINPUT_MOUSEDELAY 25 // 25 frames
00092
00093 #define OWGAME_MENU_APP 0
00094 #define OWGAME_MENU_APP_NEWGAME 1
00095 #define OWGAME_MENU_SETUPBOARD 2
00096 #define OWGAME_MENU_PLY 3
00097 #define OWGAME_MENU_MAI 4
00098 #define OWGAME_MENU_BAT 5
00099
00100 #define OWGAME_MENU_APP_COMMANDS 10
00101 #define OWGAME_MENU_APP_NEWGAME_COMMANDS 5
00102 #define OWGAME_MENU_SETUPBOARD_COMMANDS 7
00103 #define OWGAME_MENU_PLY_COMMANDS 8
00104 #define OWGAME_MENU_MAI_COMMANDS 9
00105 #define OWGAME_MENU_BAT_COMMANDS 9
00106
00107 #define OWGAME_STATUS_STOPPED 0
00108 #define OWGAME_STATUS_RUNNING 1
00109 #define OWGAME_STATUS_CREATED 2
00110 #define OWGAME_STATUS_WON 3
00111 #define OWGAME_STATUS_PLAYING 4
00112
00113 typedef struct {
00114 int x; int y;
00115 int boardside;
00116 } cellXY;
00117
00118 typedef struct {
00119 int x; int y;
00120 int boardside;
00121 int dir;
00122 } ow_move;
00123
00124 typedef struct {
00125 int x; int y;
00126 int boardside;
00127 int dir;
00128 int veval;
00129 } ow_move_eval;
00130
00131 #endif
00132