五子棋游戏代码.docx

上传人:b****7 文档编号:25227965 上传时间:2023-06-06 格式:DOCX 页数:11 大小:16.12KB
下载 相关 举报
五子棋游戏代码.docx_第1页
第1页 / 共11页
五子棋游戏代码.docx_第2页
第2页 / 共11页
五子棋游戏代码.docx_第3页
第3页 / 共11页
五子棋游戏代码.docx_第4页
第4页 / 共11页
五子棋游戏代码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

五子棋游戏代码.docx

《五子棋游戏代码.docx》由会员分享,可在线阅读,更多相关《五子棋游戏代码.docx(11页珍藏版)》请在冰豆网上搜索。

五子棋游戏代码.docx

五子棋游戏代码

//☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

//*****************函数头文件*********************

#include"stdio.h"

#include"conio.h"

#include"graphics.h"

#pragmacomment(lib,"Winmm.lib")

//*****************函数声明***********************

voidkaishi();//函数1:

游戏界面

voidxiaqi();//函数4:

鼠标下棋

//***************定义全局变量*********************

boolf=1;

floatt=0,r;

charch,shijian[8],a[8],b[8],c[8];

intk,s,cnt,N=0,hei=0,bai=0,he=0,qizi[20][20]={0};

//*******************主函数***********************

voidmain()

{

//设置窗口

initgraph(900,600);

HWNDhwnd=GetHWnd();

SetWindowText(hwnd,"五子棋游戏");

//编写人

setcolor(MAGENTA);

setfont(120,0,"方正舒体");

outtextxy(280,200,"yaoyun");

Sleep(2000);

//背景颜色变化

for(intv=0;v<=255;v++)

{

setbkcolor(RGB(v,v,0));

cleardevice();

}

kaishi();

getch();

xiaqi();

//咨询用户是否重新开始

HWNDwnd=GetHWnd();

while(MessageBox(wnd,"游戏结束,\n是否开始新的游戏?

!

","询问",MB_YESNO|MB_ICONQUESTION)==IDYES)

{

//游戏界面初始化

kaishi();

//清空游戏数据

for(inti=0;i<20;i++)

for(intj=0;j<20;j++)

qizi[i][j]=0;

//开始游戏

getch();

xiaqi();

}

closegraph();

}

//☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆//************************************************voidkaishi()//函数1:

游戏界面

{

//设置背景颜色

setbkcolor(RGB(255,255,0));

cleardevice();

//设置文字

setcolor(MAGENTA);

setfont(30,0,"华文楷体");

outtextxy(110,550,"黑胜:

");

outtextxy(240,550,"白胜:

");

outtextxy(370,550,"和局:

");

setfont(20,0,"华文楷体");

outtextxy(580,510,"播放音乐");

outtextxy(680,510,"关闭音乐");

outtextxy(780,510,"调节声音");

setcolor(BLUE);

setfont(80,0,"华文隶书");

outtextxy(600,40,"五子棋");

setfont(50,0,"华文楷体");

outtextxy(200,5,"人人对战");

setfont(30,0,"华文楷体");

outtextxy(580,460,"游戏时间:

");

setfont(15,0,"华文楷体");

outtextxy(395,40,"按任意键开始游戏");

//画音乐控制按钮

setfillstyle(GREEN);

bar(600,550,620,570);

bar(700,550,720,570);

bar(800,550,820,570);

//画棋盘

setfillstyle(RGB(220,160,30));

bar(55,55,545,545);

for(intx=75;x<=500;x+=25)

for(inty=75;y<=500;y+=25)

{

setcolor(BLACK);

rectangle(x,y,x+25,y+25);

}

}

voidjieguo(intN)//函数2:

游戏结果

{

IMAGEimg;

switch(N)

{

case1:

loadimage(&img,"黑.BMP");

hei++;

break;

case2:

loadimage(&img,"白.BMP");

bai++;

break;

case3:

loadimage(&img,"和.BMP");

he++;

break;

}

putimage(580,120,&img);

}

intpanduan(intx,inty,intf)//函数3:

判断棋局胜负{

inti=x/25-3;

intj=y/25-3;

//1表示黑棋,2表示白棋

if(f!

=1)

qizi[i][j]=1;

if(f==1)

qizi[i][j]=2;

if(x>525||x<75||y>525||y<75)

return0;

//判断游戏胜负

for(i=0;i<20;i++)

for(j=0;j<20;j++)

{

if(qizi[i][j]!

=0)

{

//判断水平向左方向

cnt=1;

for(k=1;k<5;k++)

if(qizi[i][j]==qizi[i+k][j])cnt++;

if(cnt==5)

returnqizi[i][j];

//判断水平向右方向

cnt=1;

for(k=1;k<5;k++)

if(i>=k)

{

if(qizi[i][j]==qizi[i-k][j])cnt++;

if(cnt==5)

returnqizi[i][j];

}

//判断竖直向下方向

for(k=1;k<5;k++)

cnt=1;

if(qizi[i][j]==qizi[i][j+k])cnt++;

if(cnt==5)

returnqizi[i][j];

//判断竖直向上方向

cnt=1;

for(k=1;k<5;k++)

if(j>=k)

{

if(qizi[i][j]==qizi[i][j-k])cnt++;

if(cnt==5)

returnqizi[i][j];

}

//判断斜向下方向

cnt=1;

for(k=1;k<5;k++)

if(qizi[i][j]==qizi[i+k][j+k])cnt++;

if(cnt==5)

returnqizi[i][j];

//判断斜向上方向

cnt=1;

for(k=1;k<5;k++)

if(j>=k)

{

if(qizi[i][j]==qizi[i+k][j-k])

cnt++;

if(cnt==5)

returnqizi[i][j];

}

//判断棋盘是否下满

cnt=1;

for(k=0;k<19;k++)

for(s=0;s<19;s++)

if(qizi[k][s]!

=0)

cnt++;

if(cnt==362)

return3;

}

}

return0;

}

voidxiaqi()//函数4:

使用鼠标下棋

{

//获取鼠标信息

MOUSEMSGm;

while(true)

{

//实现游戏计时功能

Sleep

(1);

sprintf(shijian,"%5.1f",t++/100);

setcolor(RED);

setfont(28,0,"宋体");

outtextxy(730,460,shijian);

//计算游戏积分

setcolor(CYAN);

sprintf(a,"%d",hei);

outtextxy(200,550,a);

sprintf(b,"%d",bai);

outtextxy(330,550,b);

sprintf(c,"%d",he);

outtextxy(460,550,c);

if(MouseHit())

m=GetMouseMsg();

//控制音乐播放

if(m.y>=550&&m.y<=570&&m.uMsg==WM_LBUTTONDOWN)

{

if(m.x>=600&&m.x<=620)

{

mciSendString("openmusic.mp3aliasmymusic",0,0,0);//打开音乐

mciSendString("playmymusicrepeat",0,0,0);//循环播放音乐

}

if(m.x>=700&&m.x<=720)

mciSendString("closemymusic",0,0,0);//关闭音乐

if(m.x>=800&&m.x<=820)

WinExec("sndvol32.exe",SW_SHOWNORMAL);//打开声音控制}

//下棋

if(m.x>=75&&m.x<=525&&m.y>=75&&m.y<=525&&m.uMsg==WM_LBUTTONDOWN)

{

//判断棋子落下的位子

if(m.x%25<=13&&m.y%25<=13)

{

m.x=m.x-m.x%25;

m.y=m.y-m.y%25;

}

if(m.x%25>=13&&m.y%25>=13)

{

m.x=m.x+(25-m.x%25);

m.y=m.y+(25-m.y%25);

}

if(m.x%25<=13&&m.y%25>=13)

{

m.x=m.x-m.x%25;

m.y=m.y+(25-m.y%25);

}

if(m.x%25>=13&&m.y%25<=13)

{

m.x=m.x+(25-m.x%25);

m.y=m.y-m.y%25;

}

//判断是下黑棋还是白棋或是不下棋

inti=m.x/25-3;

intj=m.y/25-3;

if(qizi[i][j]==0)

{

if(f)

setcolor(BLACK);//黑棋

else

setcolor(WHITE);//白棋

//画棋子

for(r=0;r<=10;r+=0.1)

circle(m.x,m.y,r);

f=!

f;

}

//判断游戏的赢家是谁

N=panduan(m.x,m.y,f);

if(N!

=0)

{

jieguo(N);

break;

}

}

}

}

//*********************结束***********************//☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1