c语言经典游戏,C语言——经典小游戏——打砖块

这是一个使用C语言编写的打砖块游戏程序,玩家通过键盘控制球拍移动,按A和D键左右移动,S键暂停游戏。游戏包含背景音乐,并在砖块被击碎时播放不同音效。当所有砖块都被消除时,玩家获胜,否则在球落下屏幕时游戏结束。玩家可以选择重新开始游戏。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

C语言——经典小游戏——打砖块

玩法:按A与D控制球拍的移动,按S暂停游戏

百度网盘下载:http://pan.baidu.com/s/1o64ECTc

代码爆破~\(≧▽≦)/~:

#include

#include

#include

#include

#include

#include

#pragma comment (lib,"winmm.lib")

#define M 20

#define N M/2

MCIDEVICEID dev[1];

MCI_OPEN_PARMS mciOpen;

MCI_PLAY_PARMS mciPlay;

void main()

{

int a[M][N]={0},i,j,sum=0,score=0,x=N/2,y=M-1,fx=0,fy=0,p=N/2,d=N/4;

char c='1';

PlaySound("bgm.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);

srand(time(0));

while(c=='1')

{

x=N/2;y=M-1;fx=0;fy=0;p=N/2;c='1';

for(i=0;i

{

for(j=0;j

{

a[i][j]=0;

a[i][j]=rand()%2;

sum+=a[i][j];

}

}

while(score

{

Sleep(100);

system("cls");

printf("打砖块游戏\n得分:%d/%d:\n",score,sum);

printf("┏");

for(j=0;j

{

printf("━");

}

printf("┓\n");

for(i=0;i

{

printf("┃");

for(j=0;j

{

if(i==y && j==x)

{

printf("●");

}

else

{

switch(a[i][j])

{

case 0:printf(" ");break;

case 1:printf("※");break;

}

}

}

printf("┃\n");

}

printf("┗");

for(j=0;j

{

if(j>p-d && j

{

printf("█");

}

else printf("━");

}

printf("┛\n");

if(kbhit())

{

c=getch();

switch(c)

{

case 'a':p--;if(y>M-2)x--;break;

case 's':system("pause");break;

case 'd':p++;if(y>M-2)x++;break;

}

}

if(y+1-2*fy=0 && x+1-2*fx=0 )

{

if(a[y+1-2*fy][x+1-2*fx]==0)

{

x=x+1-2*fx;

y=y+1-2*fy;

}

else

{

mciSendCommand (dev[0], MCI_CLOSE, NULL, NULL);

{

if(score%2==0)mciOpen.lpstrElementName="get1.mp3";

else mciOpen.lpstrElementName="get2.mp3";

if(mciSendCommand(NULL,MCI_OPEN, MCI_OPEN_ELEMENT ,(DWORD)&mciOpen)==0)

dev[0]=mciOpen.wDeviceID;

else

mciOpen.wDeviceID=dev[0];

mciPlay.dwFrom = 0;

mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);

}

x=x+1-2*fx;

y=y+1-2*fy;

score=score+a[y][x];

a[y][x]=0;

fy=1-fy;

fx=1-fx;

}

}

else if(y+1-2*fy<0)fy=1-fy;

else if(p+d>x && p-d=M)fy=1-fy;

else if(!(p+d>x && p-d=M)break;

else if(x+1-2*fx>=N || x+1-2*fx<0 )fx=1-fx;

}

if(sum==score)

{

printf("恭喜你,你淫了,再接再厉啊~\\(≧▽≦)/~\n");

mciSendCommand (dev[0], MCI_CLOSE, NULL, NULL);

{

mciOpen.lpstrElementName="win.mp3";

if(mciSendCommand(NULL,MCI_OPEN, MCI_OPEN_ELEMENT ,(DWORD)&mciOpen)==0)

dev[0]=mciOpen.wDeviceID;

else

mciOpen.wDeviceID=dev[0];

mciPlay.dwFrom = 0;

mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);

}

}

else

{

printf("真遗憾,你输了,下次注意啊Orz\n");

sum=0;score=0;

mciSendCommand (dev[0], MCI_CLOSE, NULL, NULL);

{

mciOpen.lpstrElementName="bang.wav";

if(mciSendCommand(NULL,MCI_OPEN, MCI_OPEN_ELEMENT ,(DWORD)&mciOpen)==0)

dev[0]=mciOpen.wDeviceID;

else

mciOpen.wDeviceID=dev[0];

mciPlay.dwFrom = 0;

mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);

}

}

printf("是否再来一次:\n1、是\t2、否\n");

c=getchar();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值