当前位置:文档之家› 五子棋游戏代码

五子棋游戏代码

void kaishi()//函数1:游戏界面
{
//设置背景颜色
setbkcolor(RGB(255,255,0));
cleardevice();
//设置文字
setcolor(MAGENTA);
setfont(30,0,"华文楷体");
outtextxy(110,550,"黑胜:");
outtextxy(240,550,"白胜:");
for(int y=75;y<=500;y+=25)
{
setcolor(BLACK);
rectangle(x,y,x+25,y+25);
}
}
void jieguo(int N)//函数2:游戏结果
{
IMAGE img;
switch(N)
{
case 1:
loadimage(&img,"黑.BMP");
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);
outtextxy(600,40,"五子棋");
setfont(50,0,"华文楷体");
outtextxy(200,5,"人人对战");
setfont(30,0,"华文楷体");
outtextxy(580,460,"游戏时间:");
setfont(15,0,"华文楷体");
outtextxy(395,40,"按任意键开始游戏");
HWND hwnd = GetHWnd();
SetWindowText(hwnd,"五子棋游戏");
//编写人
setcolor(MAGENTA);
setfont(120,0,"方正舒体");
outtextxy(280,200,"yaoyun");
Sleep(2000);
//背景颜色变化
for(int v=0;v<=255;v++)
}
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;
}
//判断是下黑棋还是白棋或是不下棋
//判断竖直向上方向
cnt=1;
for(k=1;k<5;k++)
if(j>=k)
{
if(qizi[i][j]==qizi[i][j-k])
cnt++;
if(cnt==5)
return qizi[i][j];
}
//判断斜向下方向
cnt=1;
for(k=1;k<5;k++)
if(qizi[i][j]==qizi[i+k][j+k])
cnt++;
if(cnt==5)
return qizi[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)
return qizi[i][j];
}
//判断棋盘是否下满
cnt=1;
{
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)
return qizi[i][j];
//判断水平向右方向
cnt=1;
for(k=1;k<5;k++)
if(i>=k)
//☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
//*****************函数头文件*********************
#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#pragma comment(lib,"Winmm.lib")
int i=m.x/25-3;
int j=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;
}
//判断游戏的赢家是谁
for(k=0;k<19;k++)
for(s=0;s<19;s++)
if(qizi[k][s]!=0)
cnt++;
if(cnt==362)
return 3;
}
}
return 0;
}
void xiaqi()//函数4:使用鼠标下棋
{
//获取鼠标信息
MOUSEMSG m;
while(true)
{
//实现游戏计时功能
hei++;
break;
case 2:
loadimage(&img,"白.BMP");
bai++;
break;
case 3:
loadimage(&img,"和.BMP");
he++;
break;
}
putimage(580,120,&img);
}
int panduan(int x,int y,int f)//函数3:判断棋局胜负
outtextxy(370,550,"和局:");
setfont(20,0,"华文楷体");
outtextxy(580,510,"播放音乐");
outtextxy(680,510,"关闭音乐");
outtextxy(780,510,"调节声音");
setcolor(BLUE);
setfont(80,0,"华文隶书");
{
if(qizi[i][j]==qizi[i-k][j])
cnt++;
if(cnt==5)
return qizi[i][j];
}
//判断竖直向下方向
for(k=1;k<5;k++)
cnt=1;
if(qizi[i][j]==qizi[i][j+k])
cnt++;
if(cnt==5)
return qizi[i][j];
char ch,shijian[8],a[8],b[8],c[8];
int k,s,cnt,N=0,hei=0,bai=0,he=0,qizi[20][20]={0};
//*******************主函数***********************
void main()
{
//设置窗口
initgraph(900,600);
//*****************函数声明***********************
void kaishi();//函数1:游戏界面
void xiaqi();//函数4:鼠标下棋
//***************定义全局变量*********************
bool f=1;
float t=0,r;
{
//判断棋子落下的位子
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);
//画音乐控制按钮
setfillstyle570);
bar(700,550,720,570);
bar(800,550,820,570);
//画棋盘
setfillstyle(RGB(220,160,30));
bar(55,55,545,545);
相关主题