资源描述:
《五子棋游戏程序(c)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、五子棋游戏程序规则:1.执黑先行2.最先在棋盘横向、纵向或斜向形成连续的同色五个棋子的一方为胜。3.黑棋禁手判负、白棋无禁手。#include#include#includevoidmain(){chargChessBoard[400][400]={0};voiddrawline(void);//函数声明voidstart(char(*p)[400]);//函数声明initgraph(640,480);//初始化绘图窗口setbkcolor(LIGHTGRAY);//设置背
2、景色drawline();//函数调用start(gChessBoard);//函数调用}////////////////////////////////////画棋盘//////////////////////////////////voiddrawline(void){voidinstruct(void);intx,x1,y1,y,i,j;setcolor(BLACK);//设置绘图色为黑cleardevice();//清除图形屏幕rectangle(0,0,400,400);//画出一个矩形框即为棋盘边框for(i=0;i<2
3、0;i++)//画X轴线{x=getx();y=gety();x+=i*20;for(j=0;j<20;j++){x+=20;moveto(x,y);//移动光标到指定的点x1=x;y1=20*20;lineto(x1,y1);//画线从当前点到(x1,y1)}}moveto(0,0);for(i=0;i<20;i++)//画Y轴线{x=getx();y=gety();y+=i*20;for(j=0;j<20;j++){y+=20;moveto(x,y);y1=y;x1=20*20;lineto(x1,y1);}}instruct(
4、);//调用函数}///////////////////////////////////按键说明/////////////////////////////////voidinstruct(void){RECTr={480,48,640,480};//建立一个矩形框drawtext("Player1:上--W下--S左--A右-D落子--空格Play2:上--I下--K左--J右-L落子--Enter结束:Esc",&r,DT_LEFT);//显示操作键}////////////
5、///////////////////////开始游戏模块/////////////////////////////////voidstart(char(*p)[400]){voidwin(char(*p)[400]);intx,y,m,n,flag=0,e=1;chara;charInputbox(void);chars6[]="Inputerror!";RECTr={40,410,480,640};//画矩形drawtext("play1go!",&r,DT_LEFT);x=200;y=200;moveto(x,y);m=x;n
6、=y;setcolor(BLACK);setfillstyle(BLACK);//用移动的黑色棋子表示光标位置fillcircle(x,y,8);a=Inputbox();//函数调用while(a!=27){if(!flag){if(*(*(p+x)+y)==0)//未落子时候移动棋子清除上一棋子{setcolor(LIGHTGRAY);setfillstyle(LIGHTGRAY);fillcircle(m,n,8);setcolor(BLACK);line(m-8,n,m+8,n);line(m,n-8,m,n+8);}}sw
7、itch(a){case'w':case'i':{moveto(x,y-20);flag=0;//未落子flag=0}break;case's':case'k':{moveto(x,y+20);flag=0;}break;case'a':case'j':{moveto(x-20,y);flag=0;}break;case'd':case'l':{moveto(x+20,y);flag=0;}break;case'':{if(*(*(p+x)+y)!=0)break;setfillstyle(BLACK);fillcircle(x,y
8、,8);//画棋子,用黑色填充flag=1;//落定棋子flag=1*(*(p+x)+y)='B';drawtext("play2go!",&r,DT_LEFT);}break;case13:{if(*(*(p+x)+y)!=0)br