项目: 打字母游戏图形化C++ / C

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目: 打字母游戏图形化C++ / C相关的知识,希望对你有一定的参考价值。

跪求 点赞 留言 打赏随意

最终的效果

一下子下3个字母

代码

//项目名称:打字程序,有三个字母随机下落
//
#define _CRT_SECURE_NO_WARNINGS//避免换编译器时,有时候编译不过
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<graphics.h>//图形图函数
#include<time.h>//随机函数种子
#include<conio.h>//按键操作库
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
void intChar(char arrayChar[],int charX[],int charY[],int index)
{
	arrayChar[index]=rand()%26+'A';
	//避免重复
	//[0]  0-1  0-2
	//[1]   1-0  1-2
	//[2]   2-0   2-1
	while(arrayChar[index] == arrayChar[(index+1)% 3] ||
		arrayChar[index] == arrayChar[index+2 % 3])
		//要来比较让三个字母没有重复
	{
		arrayChar[index]=rand()%26+'A';
	}
	charX[index]= rand()%501+200;
	charY[index]= rand()%51-200;//让下落出现有差错的效果,而不是在同一水平线出现
}
//转换类型,图形编程只允许输出字符串
void outtextxy_score(int X,int Y,int num)
//因为图形界面编程只能输出字符串
//不能输出整型,所以要把整型变为字符串型
{
	char str[20]="";
	sprintf(str,"score: %d",num);
	outtextxy(X,Y,str);
}


int main(void)
{
	srand((unsigned int)time(NULL));
	initgraph(800,600);//打开图形化界面
	char arrayChar[3] = "";//存放下落的字母
	int charX[3] = {0};//存放X坐标
	int charY[3] = {0};//存放Y坐标
	char UserKey = ' ';//存放用户输入的字母
	int score=0;
	int i=0;
	for(i=0;i<3;i++)//
	{
		intChar(arrayChar,charX,charY,i);//初始化三个字母
	}
	settextstyle(60,0,"宋体");
	IMAGE mg;
	loadimage(&mg,"mg.png",800,600);
	mciSendString("open 1.mp3 alias bkmusic", NULL, 0, NULL);
	mciSendString("play bkmusic repeat", NULL, 0, NULL); 
	while(1)
	{
		putimage(0,0,&mg);//慢慢的输出
	    //改变每一个字符的Y坐标
		for(i=0;i<3;i++)
		{	
			charY[i]+=16;
		}
		for(i=0;i<3;i++)
		{
			if(charY[i]>600)//判断字母是否到底部,如果到底部说明你没有打这个字母,那就重新分配
			{
				intChar(arrayChar,charX,charY,i);
				break;
			}
		}
		outtextxy_score(100,100,score);
		//画出三个字符
		for(i=0;i<3;i++)
		{
			outtextxy(charX[i],charY[i],arrayChar[i]);
		}
		if(_kbhit())
		{
			UserKey=_getch();
			//暂停程序:如果第一次输入的是空格就暂停,再一次空格结束暂停。
            //所谓的暂停,其实就是让程序就入死循环
			if(UserKey==' ')
			{
				while(_getch()!=' ');
			}
			for(i=0;i<3;i++)
			{
				if(arrayChar[i] == UserKey || arrayChar[i] == UserKey-('a'-'A'))
				//判断三个字母中哪个与你输入的相等,相等则重新分配
				{
					score+=10;//计分
					intChar(arrayChar,charX,charY,i);
					printf("\\a");
					break;
				}
			}
		}
		Sleep(75);
		cleardevice();//清屏
	}
	_getch();//防止闪屏
	closegraph();
	return 0;
}

资源地址

链接:https://pan.baidu.com/s/1f41wj7-V20TE2kit4A2koA 
提取码:1234

以上是关于项目: 打字母游戏图形化C++ / C的主要内容,如果未能解决你的问题,请参考以下文章

项目: 打字母游戏c++/c

C语言项目实战:《打字母游戏》零基础项目丨183 行源代码示例

C语言零基础项目:打字母游戏!详细思路+源码分享

项目: 用C语言写一个图形化的音乐播放器 C++ / C

项目: 用C语言写一个精美图形化的音乐播放器C++ / C

Java图形界面实战案例——实现打字母游戏