我是靠谱客的博主 稳重大神,最近开发中收集的这篇文章主要介绍c语言图形函数小游戏(带音效)——翻牌消消乐C语言可视化编程小游戏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言可视化编程小游戏

纯c语言编写的翻卡消消乐小游戏,有图像有音效,还写了个简单的开头动画

效果图
本人大二学生小白一个,写的不好请见谅
在这里插入图片描述
这个是带音效的还有个小开头动画的,可以看演示视频

C语言+Easyx做带图有音效《翻牌消消乐》小游戏 大二学生作品

下面是源码
本来相同图片就消除这个功能我觉得很简单的,可是费老半天劲就是实现不了那个功能,最后只能加了许多变量,所以显得代码很臃肿

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include<windows.h>
#include<time.h>
#include <Mmsystem.h>		
#pragma comment ( lib, "Winmm.lib" )

IMAGE res[27];//资源
IMAGE bg,logo,logoy;//背景
int rank[5][10];//顺序
MOUSEMSG mode;

void load_res()//res资源加载
{
	int i;
	for (i = 0; i <= 26; i++)
	{
		char name[20] = "";
		sprintf_s(name, "res/%d.jpg", i);
		loadimage(&res[i], name);
	}
	loadimage(&bg, "res/bg.jpg");
	loadimage(&logo, "res/logo.jpg");
	loadimage(&logoy, "res/logoy.jpg");
}

void shuffle_the_cards()//洗牌
{
	srand((unsigned)(time(NULL)));
	int i, x = 0, y = 0;
	int number[26] = { 0 };
	for (y = 0; y < 5; y++)
		for (x = 0; x < 10; x++)
		{
			while (1)
			{
				i = (rand() % 25 + 1);//两对1到25号数字随机安插进数组
				if (number[i] < 2)
				{
					number[i]++;
					rank[y][x] = i;
					break;
				}
			}
		}
}

int main()
{
	int i, x=0, y=0, stay = 0, compare[2][2], card[2];
	//compare 两次坐标
	//card 两次序号
	load_res();
	shuffle_the_cards();
	initgraph(1200, 700);
	putimage(0, 0, &bg);
	
	mciSendString("open ./bg.mp3 alias bk", 0, 0, 0);
	mciSendString("open ./first.mp3 alias first", 0, 0, 0);
	mciSendString("open ./click.mp3 alias click", 0, 0, 0);
	mciSendString("open ./bomb.mp3 alias bomb", 0, 0, 0);
	mciSendString("play first", 0, 0, 0);

	for (i = 1; i <= 10; i++)//开始动画
	{
		putimage(560, 300, &res[i]);
		Sleep(100);
	}
	for (i = 11; i <= 14; i++)//开始动画
	{
		putimage(560, 300, &res[i]);
		Sleep(500);
	}

	putimage(0,0, &bg);
	Sleep(1000);
	mciSendString("close first", 0, 0, 0);
	mciSendString("play bk repeat", 0, 0, 0);
	
	putimage(500, 300, &logoy, SRCAND);
	putimage(500, 300, &logo, SRCPAINT);

	i = 1;
	while (i)//判断鼠标是否点击到了开始按键
	{
		mode = GetMouseMsg();
		switch (mode.uMsg)
		{
			case WM_LBUTTONDOWN:
			{	
				mciSendString("close click", 0, 0, 0);
				mciSendString("open ./click.mp3 alias click", 0, 0, 0);
				mciSendString("play click", 0, 0, 0);
				
				if ((mode.x > 500 && mode.x < 700) && (mode.y > 300 && mode.y < 500))
				i = 0;
		}
		}
	}

	Sleep(500);
	putimage(0, 0, &bg);
	
	for (y = 0; y < 5; y++)
		for (x = 0; x < 10; x++)
			if (rank[y][x] != 0)
				putimage(((x + 1) * 100 + 10), ((y + 1) * 100 + 10), &res[0]);


	while (1)
	{

		mode = GetMouseMsg();
		switch (mode.uMsg)
		{

		case WM_LBUTTONDOWN:
		{
			mciSendString("close click", 0, 0, 0);//点击音效
			mciSendString("open ./click.mp3 alias click", 0, 0, 0);
			mciSendString("play click", 0, 0, 0);
			x = mode.x / 100;
			y = mode.y / 100;

			if ((x >= 1 && x <= 11) && (y >= 1 && y <= 7))
			{
				if (rank[y - 1][x - 1] != 0)
				{
					compare[stay][stay] = y - 1;//当前行
					compare[stay][stay + 1] = x - 1;//当前列
					card[stay] = rank[y - 1][x - 1];//当前序号
					stay++;
					putimage(((x * 100) + 10), ((y * 100) + 10), &res[rank[y - 1][x - 1]]);

					if (stay == 2)//点开两张 开始对比
					{

						if (card[0] == card[1])//消除
						{
							rank[y - 1][x - 1] = 0;
							rank[compare[0][0]][compare[0][1]] = 0;
							mciSendString("close bomb", 0, 0, 0);
							mciSendString("open ./bomb.mp3 alias bomb", 0, 0, 0);
							mciSendString("play bomb", 0, 0, 0);
						}

						Sleep(1000);
						stay = 0;
						putimage(0, 0, &bg);

						for (y = 0; y < 5; y++)
							for (x = 0; x < 10; x++)
								if (rank[y][x] != 0)
									putimage(((x + 1) * 100 + 10), ((y + 1) * 100 + 10), &res[0]);


						for (y = 0; y < 5; y++)
							for (x = 0; x < 10; x++)
								if (rank[y][x] == 0)
									putimage(((x + 1) * 100 + 10), ((y + 1) * 100 + 10), &res[26]);


					}
				}
			}
		}
		}
	}

	getchar();
	getchar();
	closegraph();

}

能力有限,代码写的不好看
音乐和图片素材都是网上的免费网站下载下来的
音乐素材来自于 爱给网
图片素材来自于 https://game-icons.net/
在这里插入图片描述
里面有很多这种黑白图片素材

本人第一篇博客,日期也很有意义,小白学生一个,代码发出来供大家交流交流

最后

以上就是稳重大神为你收集整理的c语言图形函数小游戏(带音效)——翻牌消消乐C语言可视化编程小游戏的全部内容,希望文章能够帮你解决c语言图形函数小游戏(带音效)——翻牌消消乐C语言可视化编程小游戏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部