您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 实训项目:五子棋
  所属分类: C/C++
  开发工具:
  文件大小: 15mb
  下载次数: 0
  上传时间: 2013-07-27
  提 供 者: ygd****
 详细说明: #include #include #include #pragma comment(lib,"winmm.lib") void Beginning(); //开始图片 void Background(); //显示背景 void ShowPlate(); //显示棋盘 void PlayGame(); //玩游戏 void Judgewin(int,int); //判断输赢 void Blackwin(); //黑棋赢 void Whitewin(); //白棋赢 bool flag=true; //走棋顺序 int piece[16][16]; //棋子变量 int ti,tj; int f=1; void main() { for(int i=0;i<16;i++) for(int j=0;j<16;j++) piece[i][j]=0; //初始化棋子变量 initgraph(965,642); //设置窗口大小 mciSendString("play 2.mp3" ;,0,0,0);//播放背景音乐 Background(); //显示背景 PlayGame(); //玩游戏 getch(); //保持窗口开着 } void Background() { IMAGE img; getimage(&img, "2.jpg"); putimage(0,0, &img); //设置背景图片 } void ShowPlate() { setfillstyle(RGB(213,176,146)); bar(270,30,730,490); //棋盘大小 for(int x=290,y=50;x<=710,y<=470;x+=30,y+=30) //画棋盘线 { setcolor(BLACK); line(x,50,x,470); line(290,y,710,y); } setfillstyle(BLACK); bar(284,44,286,476); bar(284,44,716,46); bar(714,44,716,476); bar(284,474,716,476);//棋盘线周围的一圈粗线 fillellipse(380,140,4,4); fillellipse(620,140,4,4); fillellipse(380,380,4,4); fillellipse(620,380,4,4); fillellipse(500,260,4,4);//棋盘的五个小黑点 setcolor(BLACK); setfillstyle(RGB(213,176,146)); bar3d(800,100,900,140,0,0); bar3d(800,200,900,240,0,0); bar3d(800,300,900,340,0,0); setfont(24,0,"华文行楷"); outtextxy(805,110,"重新开始");//重新开始 按钮 outtextxy(827,210,"悔棋");//悔棋按钮 outtextxy(827,310,"投降");//投降按钮 setcolor(RGB(213,176,146)); setfillstyle(WHITE); fillellipse(820,28,20,20); setcolor(RGB(213,176,146)); setfillstyle(BLACK); fillellipse(880,28,20,20); for(int i=0;i<15;i++) { for(int j=0;j<15;j++) { if(piece[i][j]==-1) { setcolor(WHITE); setfillstyle(WHITE); fillellipse(290+j*30,50+i*30,12,12); } else if(piece[i][j]==1) { setcolor(BLACK); setfillstyle(BLACK); fillellipse(290+j*30,50+i*30,12,12); } } } } void PlayGame() { int h=0; int y=0; int Y; int ti=0,tj=0; while(f) { MOUSEMSG msg=GetMouseMsg(); //得到鼠标输入 while(msg.uMsg==WM_LBUTTONUP) { h++; if(h==1) { ShowPlate(); } else break; } if(h>2) { int a,b,c,d; a=(msg.x-290)%30; b=(msg.y-50)%30; c=(msg.x-290)/30+a/15;//落子点的横坐标 d=(msg.y-50)/30+b/15;//落子点的纵坐标 if(msg.x>800&&msg.x<840&&msg.y>8&&msg.y<48&&y==0) flag=false; else if(msg.x>860&&msg.x<900&&msg.y>8&&msg.y<48&&y==0) flag=true; if(a==15||b==15) //判断是否在两格中间 continue; if(msg.uMsg==WM_LBUTTONUP&&piece[d][c]==0&&(c>=0&&c<15&&d>=0&&d<15)) //判断是否在棋盘内且无棋子 { mciSendString("play 3.mp3",0,0,0); if(flag==true) { piece[d][c]=1; setcolor(BLACK); setfillstyle(BLACK); fillellipse(290+c*30,50+d*30,12,12); flag=false; ti=d; tj=c; y++; } else { piece[d][c]=-1; setcolor(WHITE); setfillstyle(WHITE); fillellipse(290+c*30,50+d*30,12,12); flag=true; ti=d; tj=c; y++; } } Judgewin(c,d); if(msg.uMsg==WM_LBUTTONUP) if((msg.x>=800&&msg.x<=900)&&(msg.y>=300&&msg.y<=340)) //投降 { if(flag==true) Whitewin(); else Blackwin(); } if(msg.uMsg==WM_LBUTTONUP) if((msg.x>=800&&msg.x<=900)&&(msg.y>=100&&msg.y<=140)) //中途重新开始 { y=0; for (c=0;c<16;c++) { for (d=0;d<16;d++) { piece[c][d]=0; } } ShowPlate(); } if(msg.uMsg==WM_LBUTTONUP) { if ((msg.x>=800&&msg.x<=900)&&(msg.y>=200&&msg.y<=240)&&(Y!=y)) //悔棋 { Y=y; if(flag==true) flag=false; else flag=true; piece[ti][tj]=0; ShowPlate(); } } } while(!f) //结束后重新开始 { MOUSEMSG msg=GetMouseMsg(); if(msg.uMsg==WM_LBUTTONUP) if((msg.x>=800&&msg.x<=900)&&(msg.y>=100&&msg.y<=140)) { for (int c1=0;c1<16;c1++) { for (int d1=0;d1<16;d1++) { piece[c1][d1]=0; } } ShowPlate(); f=1; PlayGame(); } } } } void Judgewin(int c,int d) { for(int i=0;i<15;i++)//判断是否五子连珠——横向 { int s=0; for(int j=i;j
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 五子棋 实训 MFC
 输入关键字,在本站1000多万海量源码库中尽情搜索: