求一VC五子棋设计实验报告及代码

qq_35436422 2016-06-27 11:50:20


#include "EasyXPng.h"
#include <conio.h>

#define UP (unsigned char)0x48
#define LEFT (unsigned char)0x4b
#define DOWN (unsigned char)0x50
#define RIGHT (unsigned char)0x4d
#define SPECAIL_KEY (unsigned char)0xe0

#define N 15
#define GRIDSIZE 30
#define BEGIN_X 40
#define BEGIN_Y 40
#define R GRIDSIZE/2
#define BLACKQI 1
#define WHITEQI 2
#define EMPTY 0

IMAGE yy_img;
IMAGE_PNG man_img;
IMAGE_PNG black_img;
IMAGE_PNG white_img;
int man_x=0;
int man_y=0;

int array[N][N];
int x,y;
int cursor_x=N/2;
int cursor_y=N/2;
int player=BLACKQI;

unsigned char c;

void key()
{
c = getch();
if(c == 0 || c == SPECAIL_KEY)//特殊键

{

c = getch();
switch(c)

{
case UP:if (cursor_y>0) cursor_y--;

break;

case LEFT:if (cursor_x>0) cursor_x--;

break;
case DOWN:if (cursor_y<N-2) cursor_y++;


break;
case RIGHT:if (cursor_x<N-2) cursor_x++;

break;

}

}
else
{
}
}
void drawothers()
{

settextcolor(BROWN);
settextstyle(16, 0, _T("黑体"));
outtextxy(0, 0, _T("测试"));
RECT r = {0, 0, 640, 480};
drawtext(_T("五子棋"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);


}






void drawcursor()
{
if(player == BLACKQI)
setlinecolor(YELLOW);
else if(player == WHITEQI)
setlinecolor(WHITE);

rectangle(BEGIN_X + cursor_x * GRIDSIZE - R,BEGIN_Y + cursor_y + GRIDSIZE - R,
BEGIN_X + cursor_x * GRIDSIZE + R,BEGIN_Y + cursor_y * GRIDSIZE + R);
}
void drawelement()

{

loadimage(&black_img,"black.png",GRIDSIZE,GRIDSIZE);

loadimage(&white_img,"white.png",GRIDSIZE,GRIDSIZE);

for(x=0;x<N;x++)
for(y=0;y<N;y++)
{
if(array[x][y]==BLACKQI)
putimage(BEGIN_X+x*GRIDSIZE-R,BEGIN_Y+y*GRIDSIZE-R,&black_img);
else if(array[x][y]==WHITEQI)
putimage(BEGIN_X+x*GRIDSIZE-R,BEGIN_Y+y*GRIDSIZE-R,&white_img);
}
}
void drawtable()
{

int i;
setlinecolor(BLACK);

for (i=0;i<N;i++)
line(BEGIN_X,BEGIN_Y+i*GRIDSIZE,BEGIN_X+(N-1)*GRIDSIZE,BEGIN_Y+i*GRIDSIZE);
for (i=0;i<N;i++)
line(BEGIN_X+i*GRIDSIZE,BEGIN_Y,BEGIN_X+i*GRIDSIZE,BEGIN_Y+(N-1)*GRIDSIZE);

}




void drawback()
{

loadimage(&yy_img,"yy.jpg",800,600);
//loadimage(&black_img,"black.png",30,30);



putimage(0,0,&yy_img);
//putimage(BEGIN_X+man_x*GRIDSIZE,BEGIN_Y+man_y*GRIDSIZE,&black_img);



}
void paint()
{

BeginBatchDraw();
drawback();
drawtable();
drawelement();
drawcursor();
EndBatchDraw();
}
int main()
{
initgraphEx(800,600);
while(1)
{
paint();
key();


}

return 0;
}

...全文
1187 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35436422 2016-06-28
  • 打赏
  • 举报
回复
可以给个ppt么..急急急.....
赵4老师 2016-06-27
  • 打赏
  • 举报
回复
《Visual C++ 游戏开发经典案例详解》 第2篇 五子棋游戏案例分讲

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧