项目: 打字母游戏图形化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的主要内容,如果未能解决你的问题,请参考以下文章