C语言实现简易五子棋

这个博客介绍了如何使用C语言结合图形库和音乐库,实现一个简单的五子棋游戏。游戏包括初始化棋盘、画棋盘、下棋判断等功能,并通过鼠标点击交互进行游戏。代码中还包含了输赢判断的算法,当有五子连珠时游戏结束并显示获胜者。
摘要由CSDN通过智能技术生成

#include<graphics.h>//图形库头文件
#include<mmsystem.h>//播放音乐的头文件
#include<math.h>

#pragma comment(lib,"winmm.lib")//播放音乐用到的库文件
int flag = 0;//表示下棋次数
int board[20][20] = { 0 };//记录棋子下标坐标
int judge(int a, int b);
//画棋盘
void initGame()//初始化游戏
{
    initgraph(600,500);//绘图环境(创建一个窗口)
    //setbkcolor(GREEN);//创建窗口颜色
    //cleardevice();//执行窗口颜色
    loadimage(NULL, "五子棋.jpg");//贴图
    mciSendString("open 零下几十度.mp3",0,0,0);//打开背景音乐
    //mciSendString("play 零下几十度.mp3",0,0,0);//播放音乐
    //棋盘划线
    setlinecolor(BLACK);//划线颜色
    for (int i = 25; i < 500; i += 25)
    {
        line(0, i, 475, i);
        line(i, 0, i, 500);
    }
    outtextxy(502, 100, "玩家1:黑棋");//定点输出文本框
    outtextxy(502, 150, "玩家2:白棋");
}

#include #include #define N 20 void welcome(); void initqipan(); void showqi(int i); void save(int p); void panduan(int p); void heqi(); void over(); int zouqihang(); int zouqilie(); /******************结构体*****************/ struct zuobiao { int x[N*N]; int y[N*N]; }weizhi[N*N]; /******************主函数*****************/ void main() { int p=0; welcome(); initqipan(); for(p=1;p<=N*N;p++) { if(p%2==0) weizhi[p].x[p]=weizhi[p-1].x[p-1]; else weizhi[p].x[p]=zouqihang(); if(p%2==0) weizhi[p].y[p]=weizhi[p-1].y[p-1]+1; else weizhi[p].y[p]=zouqilie(); save(p); showqi(p); panduan(p); } if(p==N*N) heqi(); over(); } /******************建立棋盘*****************/ void initqipan() {char f[N]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s'}; int i,j; for(i=0;i<N;i++) { printf("%c",f[i]); printf(" "); } printf("\n"); for(i=1;i<N;i++) { for(j=0;j<N;j++) { if(j==0) printf("%c",f[i]); else printf(" &middot;"); } printf("\n"); } } /******************显示棋子*****************/ void showqi(int p) { int i,j,k,m; int a[N*N],b[N*N]; FILE *fp; fp=fopen("wuzi_list","rb"); for(i=1;i<=N*N;i++) { fread(&weizhi[i],sizeof(struct zuobiao),1,fp); a[i]=weizhi[i].x[i]; b[i]=weizhi[i].y[i]; } for(m=1;m<p;m++) { while(weizhi[p].x[p]==a[m]&&weizhi[p].y[p]==b[m]) { printf("error!\n"); weizhi[p].x[p]=zouqihang(); weizhi[p].y[p]=zouqilie(); m=1; } } for(i=0;i<N;i++) { printf("%d",i); printf(" "); } printf("\n"); for(i=1;i<N;i++) { for(j=1;j<N;j++) { if(j==1) printf("%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值