#define _CRT_SECURE_NO_WARNINGS
/**********************************************
* 头文件 *
***********************************************/
#include "chess.h"
/**********************************************
* 游戏开始 *
***********************************************/
void BeginUI()
{
IMAGE beginBackground;
loadimage(&beginBackground, L"image//GameBegin.jpg");
int width = beginBackground.getwidth();
int height = beginBackground.getheight();
initgraph(width, height);
putimage(0, 0, &beginBackground);
settextstyle(30, 0, L"锐字云字库行楷体1.0"); //设置字体
//字用透明的方式去做
setbkmode(TRANSPARENT); //透明的方式
settextcolor(RGB(0, 255, 255));
outtextxy(170, 220, _T("潭州教育")); //在指定坐标输出字
while (!_kbhit())
{
settextcolor(RED); //设置为红色的字体
outtextxy(170,280, _T("按任意键继续")); //在指定坐标输出字
Sleep(1000);
settextcolor(WHITE);
outtextxy(170, 280, _T("按任意键继续")); //在指定坐标输出字
Sleep(1000);
settextcolor(BLUE);
outtextxy(170, 280, _T("按任意键继续")); //在指定坐标输出字
Sleep(1000);
}
}
/**********************************************
* 加载图片 *
***********************************************/
void LoadingImage()
{
loadimage(&t[0], _T("image//卒.jpg"));//读取图片文件
loadimage(&t[1], _T("image//黑炮.jpg"));
loadimage(&t[2], _T("image//黑車.jpg"));
loadimage(&t[3], _T("image//黑马.jpg"));
loadimage(&t[4], _T("image//黑象.jpg"));
loadimage(&t[5], _T("image//士.jpg"));
loadimage(&t[6], _T("image//将.jpg"));
loadimage(&t[7], _T("image//兵.jpg"));
loadimage(&t[8], _T("image//炮.jpg"));
loadimage(&t[9], _T("image//車.jpg"));
loadimage(&t[10], _T("image//马.jpg"));
loadimage(&t[11], _T("image//相.jpg"));
loadimage(&t[12], _T("image//仕.jpg"));
loadimage(&t[13], _T("image//帥.jpg"));
}
/**********************************************
* 画棋盘
***********************************************/
void DrawChessboard()
{
//图型初始化
int gdriver, gmode;
int x, y;
int fillstyle;
gdriver = DETECT;
initgraph(&gdriver, &gmode, "");
setfillstyle(WHITE, 2);
bar(0, 0, 640, 480);
setcolor(RED);
for (x = 20; x <= 380; x += 45)
{
line(x, 20, x, 200);
line(x, 245, x, 425); }/*上半和下半【竖】*/
for (x = 20; x <= 45; x += 45)
{
line(x, 20, x, 380);
}/*【左】旁边*/
for (x = 380; x <= 380; x += 45)
{
line(x, 200, x, 425);
}/*【右】旁边*/
for (y = 20; y <= 200; y += 45)
{
line(20, y, 380, y);
}/*上半【行】*/
for (y = 20; y <= 460; y += 45)
{
line(20, y, 380, y);
}/*下半【行】*/
for (y = 105; y <= 111; y += 95)
{
line(45, y, 60, y);
line(85, y, 70, y);
}/*画星号【行】*/
for (x = 60; x <= 100; x += 100)
{
line(x, 105, x, 90);
line(x, 130, x, 116);
}
for (y = 115; y <= 130; y += 95)
{
line(45, y, 60, y);
line(85, y, 70, y);
}/*行*/
for (x = 70; x <= 100; x += 100)
{
line(x, 105, x, 90);
line(x, 130, x, 116);
}/*画星号【竖】*/
/*第二个星号右上*/
for (y = 105; y <= 105; y += 105)
{
line(355, y, 340, y);
line(330, y, 315, y); }/*行*/
for (x = 340; x <= 340; x += 340)
{
line(x, 130, x, 115);
line(x, 90, x, 105);
}/*画星号【竖】*/
for (y = 115; y <= 115; y += 115)
{
line(340, y, 355, y);
line(315, y, 330, y);
}/*行*/
for (x = 330; x <= 340; x += 340)
{
line(x, 130, x, 116);
line(x, 105, x, 90);
}/*竖*/
/*第三个星号*/
for (y = 330; y <= 340; y += 340)
{
line(355, y, 340, y);
line(330, y, 315, y);
}/*行*/
for (x = 330; x <= 340; x += 340)
{
line(x, 340, x, 355);
line(x, 315, x, 330);
}/*画星号【竖】*/
for (y = 340; y <= 340; y += 340)
{
line(355, y, 340, y);
line(315, y, 330, y);
}/*行*/
for (x = 340; x <= 444; x += 340)
{
line(x, 315, x, 330);
line(x, 340, x, 355);
}/*竖*/
/*第四个星号*/
for (x = 60; x <= 60; x += 60)
{
line(x, 340, x, 355);
line(x, 315, x, 330);
}/*左下星号【竖】*/
for (y = 340; y <= 340; y += 340)
{
line(45, y, 60, y);
line(70, y, 85, y);
}/*行*/
for (y = 330; y <= 330; y += 330)
{
line(45, y, 60, y);
line(70, y, 85, y);
}/*画星号【行】*/
for (x = 70; x <= 70; x += 70)
{
line(x, 340, x, 355);
line(x, 315, x, 330);
}/*竖*/
/*上【将位】*/
line(245, 20, 155, 110);
line(155, 20, 245, 110);
/*帅位*/
line(155, 425, 245, 335);
line(155, 335, 245, 425);
fillstyle = SOLID_FILL;/*把填充模式设计为SOLID_FILL颜色设置为青色*/
setfillstyle(fillstyle, CYAN);
bar(22, 202, 378, 243);/*棋盘中间*/
setbkmode(TRANSPARENT);
setcolor(BLACK);
settextstyle(30, 0, L"锐字云字库行楷体1.0");
outtextxy(80, 210, L"楚河 汉界"); /*字体坐标*/
settextstyle(100, 40, L"锐字云字库行楷体1.0");
outtextxy(480, 80, L"中");
outtextxy(480, 160, L"国");
outtextxy(480, 240, L"象");
outtextxy(480, 320, L"棋");
int r = 0;
for (int u = 20; u <= 380; u = u + 45)//给棋盘x坐标赋值
for (int uu = 20; uu <= 425; uu = uu + 45)//给棋盘y坐标赋值
{
getimage(&jt[r], u - 20, uu - 20, 45, 45);
zb[r].x = u - 20;
zb[r].y = uu - 20;
zb[r].id = 0;
strcpy(zb[r].zt, "空");
zb[r].bj = r;
r++;
}
}
/**********************************************
* 画棋子
***********************************************/
void DrawPeices()
{
putimage(45, 90, &t[1]); //在当前指定坐标画出指定图
strcpy(zb[12].zt, "黑炮"), zb[12].id = 1;
putimage(315, 90, &t[1]);
strcpy(zb[72].zt, "黑炮"), zb[72].id = 1;
putimage(0, 135, &t[0]);
strcpy(zb[3].zt, "卒"), zb[3].id = 1;
putimage(90, 135, &t[0]);
strcpy(zb[23].zt, "卒"), zb[23].id = 1;
putimage(180, 135, &t[0]);
strcpy(zb[43].zt, "卒"), zb[43].id = 1;
putimage(270, 135, &t[0]);
strcpy(zb[63].zt, "卒"), zb[63].id = 1;
putimage(360, 135, &t[0]);
strcpy(zb[83].zt, "卒"), zb[83].id = 1;
putimage(0, 0, &t[2]);
strcpy(zb[0].zt, "黑車"), zb[0].id = 1;
putimage(360, 0, &t[2]);
strcpy(zb[80].zt, "黑車"), zb[80].id = 1;
putimage(45, 0, &t[3]);
strcpy(zb[10].zt, "黑马"), zb[10].id = 1;
putimage(315, 0, &t[3]);
strcpy(zb[70].zt, "黑马"), zb[70].id = 1;
putimage(270, 0, &t[4]);
strcpy(zb[60].zt, "黑象"), zb[60].id = 1;
putimage(90, 0, &t[4]);
strcpy(zb[20].zt, "黑象"), zb[20].id = 1;
putimage(135, 0, &t[5]);
strcpy(zb[30].zt, "士"), zb[30].id = 1;
putimage(225, 0, &t[5]);
strcpy(zb[50].zt, "士"), zb[50].id = 1;
putimage(180, 0, &t[6]);
strcpy(zb[40].zt, "将"), zb[40].id = 1;
/*红方棋子*/
putimage(45, 315, &t[8]); //在当前指定坐标画出指定图
strcpy(zb[17].zt, "炮"), zb[17].id = 2;
putimage(315, 315, &t[8]);
strcpy(zb[77].zt, "炮"), zb[77].id = 2;
putimage(0, 270, &t[7]);
strcpy(zb[6].zt, "兵"), zb[6].id = 2;
putimage(90, 270, &t[7]);
strcpy(zb[26].zt, "兵"), zb[26].id = 2;
putimage(180, 270, &t[7]);
strcpy(zb[46].zt, "兵"), zb[46].id = 2;
putimage(270, 270, &t[7]);
strcpy(zb[66].zt, "兵"), zb[66].id = 2;
putimage(360, 270, &t[7]);
strcpy(zb[86].zt, "兵"), zb[86].id = 2;
putimage(0, 405, &t[9]);
strcpy(zb[9].zt, "車"), zb[9].id = 2;
putimage(360, 405, &t[9]);
strcpy(zb[89].zt, "車"), zb[89].id = 2;
putimage(45, 405, &t[10]);
strcpy(zb[19].zt, "马"), zb[19].id = 2;
putimage(315, 405, &t[10]);
strcpy(zb[79].zt, "马"), zb[79].id = 2;
putimage(270, 405, &t[11]);
strcpy(zb[29].zt, "相"), zb[29].id = 2;
putimage(90, 405, &t[11]);
strcpy(zb[69].zt, "相"), zb[69].id = 2;
putimage(135, 405, &t[12]);
strcpy(zb[39].zt, "仕"), zb[39].id = 2;
putimage(225, 405, &t[12]);
strcpy(zb[59].zt, "仕"), zb[59].id = 2;
putimage(180, 405, &t[13]);
strcpy(zb[49].zt, "帥"), zb[49].id = 2;
}
/**********************************************
* 主函数
***********************************************/
int main()
{
BeginUI();
getchar();
DrawChessboard();
LoadingImage();
DrawPeic