我的项目是五子棋
今天写了一些基本的页面
主菜单页,调用函数运行相关的游戏
void CreatMenu()//建立主菜单
{
IMAGE img;//数据类型为图像,可用于存储图像的像素信息
loadimage(&img, L"bj1.jdp", 670, 550);
putimage(0, 0, &img);//插入图片
//initgraph(670, 550);
//loadimage(NULL, L"bj1.jpg");
//putimage(0, 0, &img);//插入图片
mciSendString(L"open bgmusic.mp3", 0, 0, 0);
mciSendString(L"play bgmusic.mp3 repeat", 0, 0, 0);//循环播放背景音乐
setlinestyle(PS_SOLID, 1);//设置主菜单选项边框为实线,宽度为1像素
setfillcolor(RGB(187, 128, 96));//设置填充颜色
setlinecolor(WHITE);//设置线条颜色
int left = 80, top = 180, right = 300, bottom = 240;
for (int i = 1;i <= 4;i++)//设置四个主菜单选项边框
{
fillrectangle(left, top, right, bottom);
top += 90, bottom += 90;
}
//setfillcolor(RGB(88,88,88));//设置填充颜色
//fillrectangle(50,50,120,90);
//settextstyle(30,0,"楷体");//设置字体
setbkmode(TRANSPARENT);//设置字体背景模式
settextstyle(50, 0, L"楷体");//设置字体
setfillcolor(RGB(105, 55, 29));//设置字体颜色,暗棕色
outtextxy(85, 185, L"双人模式");
outtextxy(85, 275, L"人机模式");
outtextxy(85, 365, L"排行榜");
outtextxy(85, 455, L"退出游戏");
/*fillrectangle(80, 180, 300, 240);
fillrectangle(80,270,300,330);
fillrectangle(80, 360, 300, 420);
fillrectangle(80, 450, 300, 510);*/
MOUSEMSG msg;//响应用户的鼠标操作
while (1)
{
//fillrectangle(50,50,120,90);
msg = GetMouseMsg();//接收鼠标信息
if (msg.uMsg == WM_LBUTTONDOWN)//如果鼠标状态为按下左键
{
if (msg.x > 80 && msg.x < 300 && msg.y>180 && msg.y < 240)
{
//mciSendString(L"play./开始音效.wav", 0,0,0);
//DoubleGame();//开始双人模式
break;
}
if (msg.x > 80 && msg.x < 300 && msg.y>270 && msg.y < 330)
{
//mciSendString(L"play./开始音效.wav", 0, 0, 0);
//MachineGame();//开始人机模式
break;
}
if (msg.x > 80 && msg.x < 300 && msg.y>360 && msg.y < 420)
{
//mciSendString(L"play./开始音效.wav", 0, 0, 0);
//RankList();//排行榜
break;
}
if (msg.x > 80 && msg.x < 300 && msg.y>450 && msg.y < 510)
{
closegraph();//退出游戏
break;
}
}
}
system("pause");//暂停程序执行,按任意键继续
}
画出棋盘,15*15格的标准棋盘,还有相关的提示显示在旁边
void CreatBoard()
{
setbkcolor(RGB(190, 152, 122));//棋盘颜色,浅棕色
cleardevice();//清屏
setlinecolor(BLACK);
setlinestyle(PS_SOLID, 2);//绘制线条
rectangle(30, 30, 520, 520);
int space = 50;//设置棋盘左上角的位置
setlinestyle(PS_SOLID,1);
for (int i = 0;i < 16;i++)//绘制棋盘
{
line(space, space + i * 30, 500, space + i * 30);//水平线
}
for (int i = 0;i < 16;i++)
{
line(space + i * 30, space, space + i * 30, 500);//垂直线
}
setlinecolor(BLACK);
setfillcolor(RGB(126, 89, 61));//深咖色
fillrectangle(540, 270, 650, 310);//绘制矩阵并填充颜色
fillrectangle(540, 330, 650, 370);
fillrectangle(540, 390, 650, 430);
settextstyle(15, 0, L"宋体");//字体大小15,宋体
settextcolor(WHITE);
rectangle(553, 97, 650, 138);
rectangle(553, 137, 650, 178);
outtextxy(560, 100, L"P1 白棋");
outtextxy(560, 120, L"P2 黑棋");
outtextxy(560, 145, L"Enter键下棋");
settextstyle(20, 0, L"黑体");//设置字体
setbkmode(TRANSPARENT);//设置字体背景模式(透明背景)
settextcolor(BLACK);//设置选项字体颜色
outtextxy(548, 278, L"按C键求和");
outtextxy(548, 338, L"按R键悔棋");
outtextxy(548, 398, L"按B键返回");
for (int i = 0;i < 16;i++)
{
for (int j = 0;j < 16;j++)
{
if (map[i][j] == 1)
{
setfillcolor(WHITE);
fillcircle(50 + j * 30, 50 + i * 30, 10);
}
if (map[i][j]== 2)
{
setfillcolor(BLACK);
fillcircle(50 + j * 30, 50 + i * 30, 10);
}
}
}
}