问题描述
- c语言编写五子棋游戏,出错
-
本人在意c语言编写老师布置的一项五子棋游戏的作业,编译运行通过,但是在打开的界面上无法绘制棋子,求大神解答!谢谢!
代码:
#include
#include
#include
//-------------------------------------------------
//画棋盘
void drawpane()
{
for(int i=50;i<=900;i+=50)
{
line(i,50,i,700);
}
for(int j=50;j<=700;j+=50)
{
line(50,j,900,j);
}}
//----------------------------------------------------
//定义一个二维数组,里面存放棋子,白子为1,黑子为0
void Initq(int arr[14][18])
{
for(int i=0;i
{
for(int j=0;j
{
arr[i][j]=0;
}
}
}
//--------------------------------------------------
//画棋子,奇数画白子,偶数画黑子
void drawqizi(int arr[14][18])
{
MOUSEMSG m; //定义鼠标消息
int color=0;
while(1)
{
m=GetMouseMsg();//获取一条鼠标消息
if(WM_LBUTTONDOWN==m.uMsg)
{
color++;
int x=m.x;
int y=m.y;
if(1==color%2)
{
setcolor(0xffffff);
setfillstyle(0xffffff);
arr[x][y]=0;
}
else
{
setcolor(0);
setfillstyle(0);
arr[x][y]=1;
}
if(m.x>=100&&m.x<=900&&m.y>=100&&m.y<=700)
{
fillcircle((m.x+50)/50*50,(m.y+50)/50*50,20);
setfillstyle(0x0000ff);
}} }
}
//-------------------------------------------------------
void check_win(int arr[14][18])
{
//判断横方向
MOUSEMSG m;
int x=m.x;
int y=m.y;
if( arr[x][y]==0&&arr[x-1][y]==0&&arr[x-2][y]==0&&arr[x-3][y]==0&&arr[x-4][y]==0)
{
printf("白子胜利!");} else if( arr[x][y]==0&&arr[x+1][y]==0&&arr[x+2][y]==0&&arr[x+3][y]==0&&arr[x+4][y]==0) { printf("白子胜利!"); } else if ( arr[x][y]==1&&arr[x+1][y]==1&&arr[x+2][y]==1&&arr[x+3][y]==1&&arr[x+4][y]==1) { printf("黑子胜利!"); } else if(arr[x][y]==1&&arr[x-1][y]==1&&arr[x-2][y]==1&&arr[x-3][y]==1&&arr[x-4][y]==1) { printf("黑子胜利!"); }
}
int main()
{
int arr[14][18];initgraph(1000,800,0); setbkcolor(0x408030); cleardevice(); RECT r={0,0,900,100}; drawtext("五子棋游戏",&r,DT_TOP); drawpane(); drawqizi(arr); bar3d(400,10,500,40,2,1); Initq(arr); check_win(arr);//棋盘大小14行18列 return 0;
}
解决方案
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2307159
解决方案二:
http://download.csdn.net/download/wuqin0606/3222632
http://www.docin.com/p-574598306.html
解决方案三:
用c语言代码编写的游戏“简易五子棋”
用c语言编写游戏
一个C语言编写的坦克大战游戏