优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC429 中国象棋系统双人对下游戏程序

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

一. 系统功能说明
本游戏程序为中国象棋双人对下,只要有一方的将(帅)被对方吃掉后系统自动判断输赢,并显示Black is winning the game或(Red is winning the game)。在走棋过程中,系统自动提示红(黑)方走。如果有一方想放弃本局,就可以点击象棋框右边的退出框。如果一局结束后想继续走,则只要用鼠标点击右边的开始框,则进行新一局游戏(具体游戏界面见附录二)。

think58好,好think58

[资料来源:www.THINK58.com]

[来源:http://think58.com]

二. 使用说明

copyright think58 [资料来源:http://THINK58.com]

[资料来源:http://think58.com]

(1)本程序所使用库函数说明
include<stdio.h>    
stdio.h中的基本函数;
include<process.h>  
  process.h中的exit(0)函数;
include<dos.h>    
dos.h中相关鼠标操作设置;
include<math.h>    
math.h中的fabs()函数;
include<conio.h>
include<graphics.h>
    graphics.h中的 setcolor(),setfillstyle(),line(),moveto(),
    floodfill(),circle(),rectange()等函数; 内容来自think58

[来源:http://think58.com]

(2)程序使用说明
     鼠标点击棋子一下(棋子外圈变红色),则可以移动当前的棋子;鼠标点击两下(棋子外圈变白色),则取消当前所选的棋子。

内容来自think58

[资料来源:www.THINK58.com]

[来源:http://www.think58.com]

三. 程序结构
1. 程序结构说明
见中国象棋流程图(附录一)。
2. 重要数据的说明
见附录二
棋子半径R=17,
棋盘框窗口(60,50,380,410),操作者框窗口(460,40,570,90),
开始框窗口(460,110,570,160),退出框窗口(460,180,570,230),
游戏说明框窗口(460,240,570,410)。
3. 程序函数清单
(1) 自己所编的小型汉字库
void get_hz(int hanzi,unsigned char bur[]);
(2) 显示汉字
void print_hz(unsigned char  *mat,int color,int x,int y);
(3) 画棋子
void drawQizi(struct mouse* mouse1,int color);
(4) 初始化游戏(显示游戏棋盘包括操作、开始、退出、游戏说明框,棋子)
void showQiPan();
(5) 鼠标初始化
void  initmouse();

本文来自think58

[资料来源:http://www.THINK58.com]

[版权所有:http://think58.com]

  int x;
 int y; think58.com

[资料来源:http://THINK58.com]

};
static int a[ROW][COL];
int number;
void get_hz(int hanzi,unsigned char bur[])/*编小型汉字库*/
{   /*  军、马、炮、相、士、将、卒的走法正确性的判断*/
   switch(hanzi){
   case REDCHE :
      case BLACKCHE :
    {
     bur[0]=0x01;bur[1]=0x80;bur[2]=0x01;bur[3]=0x80;bur[4]=0x3f;
bur[5]=0xfc;bur[6]=0x3f;bur[7]=0xfc;bur[8]=0x01;bur[9]=0x80;
bur[10]=0x0f;bur[11]=0xf0;bur[12]=0x0d;bur[13]=0xb0;bur[14]=0x0f;
bur[15]=0xf0;bur[16]=0x0d;bur[17]=0xb0;bur[18]=0x0f;bur[19]=0xf0;
bur[20]=0x01;bur[21]=0x80;bur[22]=0x3f;bur[23]=0xfc;bur[24]=0x3f;
bur[25]=0xfc;bur[26]=0x01;bur[27]=0x80;bur[28]=0x01;bur[29]=0x80; bur[30]=0x01;bur[31]=0x80;
     return;
    }
      case REDXIANG :
    {
     bur[0]=0x18;bur[1]=0x7f;bur[2]=0x18;bur[3]=0x7f;bur[4]=0x18;
bur[5]=0x63;bur[6]=0x18;bur[7]=0x63;bur[8]=0xff;bur[9]=0x7f; think58好,好think58

[来源:http://think58.com]


bur[10]=0xff;bur[11]=0x7f;bur[12]=0x3c;bur[13]=0x63;bur[14]=0x3c;
bur[15]=0x63;bur[16]=0x5a;bur[17]=0x63;bur[18]=0x5a;bur[19]=0x7f;
bur[20]=0x5a;bur[21]=0x7f;bur[22]=0xdb;bur[23]=0x63;bur[24]=0x99;
bur[25]=0x63;bur[26]=0x99;bur[27]=0x63;bur[28]=0x18;bur[29]=0x7f;
bur[30]=0x18;bur[31]=0x7f;
     return;
    }
      case BLACKXIANG :
    {
    bur[0]=0x01;bur[1]=0xc0;bur[2]=0x3;bur[3]=0xe0;bur[4]=0x06;
bur[5]=0x60;bur[6]=0x0c;bur[7]=0xc0;bur[8]=0x3f;bur[9]=0xfc;
bur[10]=0x21;bur[11]=0x4;bur[12]=0x23;bur[13]=0x04;bur[14]=0x3f;
bur[15]=0xfc;bur[16]=0x0e;bur[17]=0x00;bur[18]=0x1b;bur[19]=0x08;
bur[20]=0x34;bur[21]=0x90;bur[22]=0x69;bur[23]=0x60;bur[24]=0x02;
bur[25]=0x60;bur[26]=0x04;bur[27]=0x50;bur[28]=0x08;bur[29]=0x88;
bur[30]=0x07;bur[31]=0x06;
    return;
    }
   case  REDHORSE :
    {
             bur[0]=0x00;bur[1]=0x00;bur[2]=0x3f;bur[3]=0xf8;bur[4]=0x3f; copyright think58

[资料来源:www.THINK58.com]


bur[5]=0xf8;bur[6]=0x00;bur[7]=0x18;bur[8]=0x18;bur[9]=0x18;
bur[10]=0x18;bur[11]=0x30;bur[12]=0x18;bur[13]=0x20;bur[14]=0x1f;
bur[15]=0xfe;bur[16]=0x00;bur[17]=0x02;bur[18]=0x00;bur[19]=0x02;
bur[20]=0x7f;bur[21]=0xf2;bur[22]=0x00;bur[23]=0x02;bur[24]=0x00;
bur[25]=0x02;bur[26]=0x00;bur[27]=0x22;bur[28]=0x00;bur[29]=0x3e;
bur[30]=0x00;bur[31]=0x00;
    return;
    }
      case BLACKHORSE :
    {
              bur[0]=0x00;bur[1]=0x00;bur[2]=0x3f;bur[3]=0xf8;bur[4]=0x3f;
bur[5]=0xf8;bur[6]=0x00;bur[7]=0x18;bur[8]=0x18;bur[9]=0x18;
bur[10]=0x18;bur[11]=0x30;bur[12]=0x18;bur[13]=0x20;bur[14]=0x1f;
bur[15]=0xfe;bur[16]=0x00;bur[17]=0x02;bur[18]=0x00;bur[19]=0x02;
bur[20]=0x7f;bur[21]=0xf2;bur[22]=0x00;bur[23]=0x02;bur[24]=0x00;
bur[25]=0x02;bur[26]=0x00;bur[27]=0x22;bur[28]=0x00;bur[29]=0x3e;
bur[30]=0x00;bur[31]=0x00;
     return; 本文来自think58

[版权所有:http://think58.com]


    }
     case REDSHI :
    {
        bur[0]=0x00;bur[1]=0x00;bur[2]=0x07;bur[3]=0x00;bur[4]=0x0e;
bur[5]=0x30;bur[6]=0x18;bur[7]=0x30;bur[8]=0x18;bur[9]=0x30;
bur[10]=0x33;bur[11]=0xff;bur[12]=0x63;bur[13]=0xff;bur[14]=0xd8;
bur[15]=0x30;bur[16]=0x18;bur[17]=0x30;bur[18]=0x18;bur[19]=0x30;
bur[20]=0x18;bur[21]=0x30;bur[22]=0x18;bur[23]=0x30;bur[24]=0x18;
bur[25]=0x30;bur[26]=0x19;bur[27]=0xfe;bur[28]=0x19;bur[29]=0xfe;
bur[30]=0x00;bur[31]=0x00;
     return;
    }
    case BLACKSHI :
    {
     bur[0]=0x01;bur[1]=0x80;bur[2]=0x01;bur[3]=0x80;bur[4]=0x01;
bur[5]=0x80;bur[6]=0x01;bur[7]=0x80;bur[8]=0x7f;bur[9]=0xfe;
bur[10]=0x70;bur[11]=0xfe;bur[12]=0x01;bur[13]=0x80;bur[14]=0x01;
bur[15]=0x80;bur[16]=0x01;bur[17]=0x80;bur[18]=0x01;bur[19]=0x80;
bur[20]=0x01;bur[21]=0x80;bur[22]=0x01;bur[23]=0x80;bur[24]=0x1f; think58

[来源:http://www.think58.com]


bur[25]=0xf8;bur[26]=0x1f;bur[27]=0xf8;bur[28]=0x00;bur[29]=0x00;
bur[30]=0x00;bur[31]=0x00;
     return;
     }
  case REDJIANG :
    {
    
 if(temp==15||temp==5)  
  return 1;
 else  return 0;
}

[资料来源:http://think58.com]

int iscancelQizi(struct mouse* mouse0,struct mouse* mouse1)
{
 if(mouse0->x==mouse1->x&&mouse0->y==mouse1->y)
 {
  setcolor(WHITE);
  circle((mouse0->x*dix)+lx,(mouse0->y*dy)+ly,17);
  return 1;
 }
 else return 0;
}

本文来自think58 [来源:http://think58.com]

[资料来源:http://think58.com]

void changeQizi(struct mouse* mouse0,struct mouse* mouse1)
{  
 a[mouse1->y][mouse1->x]=a[mouse0->y][mouse0->x];
 a[mouse0->y][mouse0->x]=0;
 showQiPan();
}
void changecolor(struct mouse* mouse0)/*改变棋子边框颜色*/
{  
 setcolor(RED);
 circle((mouse0->x*dix)+lx,(mouse0->y*dy)+ly,17);
}

think58.com

[资料来源:http://www.THINK58.com]

[版权所有:http://think58.com]

void newGame()
{
 int graphdriver=DETECT,graphmode;
 struct palettetype palette;
 int i,j;
 struct mouse mouse0;/*初始棋子位置,0表示无棋子*/
a[0][0]=1;a[0][1]=3;a[0][2]=2;a[0][3]=4;a[0][4]=5;a[0][5]=4;
a[0][6]=2;a[0][7]=3;a[0][8]=1;
a[1][0]=0;a[1][1]=0;a[1][2]=0;a[1][3]=0;a[1][4]=0;a[1][5]=0;
a[1][6]=0;a[1][7]=0;a[1][8]=0;
a[2][0]=0;a[2][1]=6;a[2][2]=0;a[2][3]=0;a[2][4]=0;a[2][5]=0;
a[2][6]=0;a[2][7]=6;a[2][8]=0;
a[3][0]=7;a[3][1]=0;a[3][2]=7;a[3][3]=0;a[3][4]=7;a[3][5]=0;
a[3][6]=7;a[3][7]=0;a[3][8]=7;
a[4][0]=0;a[4][1]=0;a[4][2]=0;a[4][3]=0;a[4][4]=0;a[4][5]=0;
a[4][6]=0;a[4][7]=0;a[4][8]=0;
a[5][0]=0;a[5][1]=0;a[5][2]=0;a[5][3]=0;a[5][4]=0;a[5][5]=0;
a[5][6]=0;a[5][7]=0;a[5][8]=0;
a[6][0]=17;a[6][1]=0;a[6][2]=17;a[6][3]=0;a[6][4]=17;a[6][5]=0;
a[6][6]=17;a[6][7]=0;a[6][8]=17;
a[7][0]=0;a[7][1]=16;a[7][2]=0;a[7][3]=0;a[7][4]=0;a[7][5]=0;
a[7][6]=0;a[7][7]=16;a[7][8]=0;
a[8][0]=0;a[8][1]=0;a[8][2]=0;a[8][3]=0;a[8][4]=0;a[8][5]=0; think58.com

[来源:http://www.think58.com]

a[8][6]=0;a[8][7]=0;a[8][8]=0;
a[9][0]=11;a[9][1]=13;a[9][2]=12;a[9][3]=14;a[9][4]=15;a[9][5]=14;
a[9][6]=12;a[9][7]=13;a[9][8]=11;
    initgraph(&graphdriver,&graphmode,"");
    setviewport(0,0,600,460,1);
    clearviewport();
    getpalette(&palette);
    setbkcolor(BLUE);
    showQiPan();
    showKSK(BROWN);
    showTCK(BROWN);
    showSMK(BROWN);

copyright think58

[来源:http://think58.com]

[版权所有:http://think58.com]


}
void GameOver()
{    setcolor(WHITE);
 setfillstyle(1,WHITE);
 rectangle(60,170,380,290);
    floodfill(80,190,WHITE);
 setcolor(RED);
 settextstyle(1,0,2);
 settextjustify(CENTER_TEXT,1);
 if(number==FIRST)   outtextxy(215,210,"Red is winning the game");
 else  outtextxy(215,210,"Black is winning the game");
} copyright think58

[资料来源:www.THINK58.com]

void main()
{  
 struct mouse mouse[2];int bottom=0,mousex,mousey,x=20,y=30;
    int temp,flag0,flag1;
 int flag2;
 do{ 
  number=FIRST;
  newGame();
  initmouse();
  cursttoxy(20,30);

[资料来源:www.THINK58.com]