一下代码为纯c 写的单机版五子棋代码,可用vc6.0 编译运行 #include #include #include #include #define TEXTS 7 // 文本颜色 #define CURSOR 48 // 光标颜色 #define CHESSBOARD 352 // 棋盘颜色 #define WHITECHESS 103 // 白棋颜色 #define SELECTEDWHITE 55 // 白棋被选中时的颜色 #define BLACKCHESS 96 // 黑棋颜色 #define SELECTEDBLACK 48 // 黑棋被选中时的颜色 #define qx1_num 27 // 防御棋形的数量 #define qx2_num 26 // 攻击棋形的数量 typedef struct node{ // 棋盘信息 int step; // 步数,步数为0 表示该位置为空 int color; // 棋子的颜色 } NODE; typedef struct point{ //点 int x; int y; } _POINT; typedef struct qixing{ // 棋形信息 char qx[8]; // 棋形 int value; // 相应的权值 }QIXING; HANDLE hOutput=GetStdHandle(STD_OUTPUT_HANDLE); // 得到标准输出的句柄 _POINT cursor; // 游戏中,光标所在的当前位置 int direction[8][2]={{0,-1},{0,1},{-1,0},{1,0},{-1,-1},{1,1},{-1,1},{1,-1}}; // 向量数组,依次为左、右、上、下、左上、右下、右上、左下 QIXING qx1[qx1_num]={{"x1111",200000},{"1x111",200000}, {"11x11",200000}, // 连五型 {"0x1110",6000},{"01x110",6000},{"101x101",6000}, // 活四型 {"0x111",1100},{"x0111",1100},{"0x1011",1100},{"0x1101",1100}, {"01x11",1100}, // 冲四型 {"011x1",1100},{"1x011",1100},{"10x11",1100},{"11x01",1100}, {"1x101",1100}, // 冲四型 {"x011102",250},{"0x110",250},{"01x10",250},{"0x01102",240}, {"0x101",240}, // 活三型 {"0x112",20},{"01x12",10},{"011x2",20},{"1x12",10}, {"0x10",20},{"0x010",5}}; // 死三活二 //防御的基本棋形及权值,0 为空,1 为对手,2 为自己,x 为下棋位置 QIXING qx2[qx2_num]={{"x1111",2000000},{"1x111",2000000}, {"11x11",2000000}, // 连五型 {"0x1110",24000},{"01x110",24000}, {"101x101",24000}, //活四型 {"0x111",2000},{"x0111",1900},{"0x1011",1900},{"0x1101",2000}, {"01x11",2000}, // 冲四型 {"011x1",2000},{"1x011",1900},{"10x11",2000},{"1x101",2000}, {"x01112",2000}, // 冲四...