该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
头文件请到http://tieba.baidu.com/f?kz=753744956下载,在此感谢BestAns
源代码如下:
#include
#include
#include
#define length 20
#define ESC 27
#define ENTER '\r'
void draw() //画棋盘
{
int i;
setfillstyle(BROWN);
bar(120,40,520,440);
setcolor(BLACK);
for(i=0;i<19;i++)
line(140,60+i*length,500,60+i*length);
for(i=0;i<19;i++)
line(140+i*length,60,140+i*length,420);
setfillstyle(BLACK);
for(i=0;i<17;i+=6)
for(int j=0;j<17;j+=6)
fillellipse(200+i*length, 120+j*length, 3, 3);
}
void draw2() //恢复棋盘边框,目前还没想出比较完美的方法
{
int i;
setcolor(BROWN);
for(i=0;i<20;i++)
line(120,40+i,520,40+i);
for(i=0;i<20;i++)
line(120+i,60,120+i,440);
for(i=0;i<20;i++)
line(120,440-i,520,440-i);
for(i=0;i<20;i++)
line(520-i,40,520-i,440);
}
typedef struct{ //定义结构体二围数组,记录棋子的位置和颜色
int flag;
int color;
}stone;
stone judge[18][18];
void drawstone(int x,int y,int color) //放置棋子
{
int X,Y;
X=(640-length*18)/2+x*length-length/2-10;
Y=(480-length*18)/2+y*length-length/2-10;
setfillstyle(color);
setcolor(color);
circle(X,Y,length/2-1);
floodfill(X,Y,color);
}
void drawstone2(int x,int y,int color) //在左上角绘出新的棋子
{
int X,Y;
drawstone(x,y,color);
X=(640-length*18)/2+x*length-length/2-10;
Y=(480-length*18)/2+y*length-length/2-10;
setcolor(GREEN);
circle(X,Y,length/2-1);
}
void initjudge() //初始化棋子位置和颜色
{
int i,j;
for(i=0;i<18;i++)
for(j=0;j<18;j++)