打字母小游戏可计分版代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<time.h>
void Main_Face();
void Game_Star(int ranktemp);
void Game_Over(char s,int score);
void Game_Over(char s[],int score);
int rank_(char rank);
int main()
{
initgraph(640,480);
char rank;
int ranktemp=10;
Main_Face();
rank=getch();
outtextxy(180,200,rank);
getchar();
cleardevice();/*清屏*/
ranktemp=rank_(rank);/*把字母转化为数字 */
Game_Star(rank);
closegraph();
return 0;
}
void Main_Face()
{
int c=255;
setcolor(YELLOW);
setfont(40,0,"黑体");
outtextxy(200,20,"打字母小游戏");
setcolor(RED);
setfont(30,0,"宋体");
outtextxy(0,60,"游戏说明:");
setcolor(WHITE);
setfont(15,0,"宋体");
outtextxy(0,100,"一、每次下落200个字母:");
outtextxy(0,120,"二、被点中字母为您的得分");
outtextxy(0,145,"三、按键1--9选择不同游戏的级别");
outtextxy(0,170,"四、9级最低,1级最高");
setfont(20,0,"隶书");
while(!kbhit())
{
setcolor(RGB(0,c,255));
outtextxy(0,200,"请输入游戏级别:");
c-=25;
if(c<0) c=255;
Sleep(100);
}
}
void Game_Star(int ranktemp)
{
char s[5],target,key;/*target 目标字母,key用户按键*/
int x,y ,flag=1,sum=0;/*x,y,字母的位置,flag标记是否按了退出键,sum成绩计数*/
int num=200,score=0;
srand(time (NULL));
setfillstyle(BLACK);
setcolor(RED);
line(0,450,640,450);
line(0,460,640,460);
line(0,30,640,30);
while(flag&&num)
{
setfont(40,0,"BIG");/*设置字母的字体和大小*/
target=97+rand()%26;/*产生的任意小写字母*/
x=rand()%610; /*产生的任意下落位置*/
for(y=41;y<400;y++)
{
setcolor(RGB(255,150,255));/*设置字母的颜色*/
outtextxy(x,y,target);/*显示字母*/
if(kbhit())
{
key=getch();/*获取用户按键*/
if((key==target)||(key==target-32))
{
score++;/*分数统计*/
sprintf(s,"%d",score);/*把整型换成字符型*/
setfont(30,0,"Arial");
sprintf(s,"%d",score);
outtextxy(0,0,"分数");
outtextxy(100,0,s);/*输出分数*/
/* mciSendString(T("play mymusic"),NULL,0,NULL);播放音乐*/
bar(x-10,y-10,x+35,y+50);/*檫去字母*/
break;/*跳出循环,进行下一个字母*/
}
else if(key==27)
{flag=0;break;}/*如果按esc,退出游戏主循环*/
}
Sleep(ranktemp);/*控制清除字母的时间也就是控制下落的速度*/
bar(x,y,x+35,y+50);/*清除字母痕迹*/
num--;
}
} Game_Over(s,score);
}
void Game_Over(char s[],int score)
{
cleardevice();
setcolor(YELLOW);
setfont(20,0,"黑体");
outtextxy(104,120,"最终成绩是:");
outtextxy(250,120,s);
setfont(20,0,"黑体");
setcolor(RGB(255,25,140));
if(score==200)outtextxy(100,200,"全部击中!!");
else if(score>190)outtextxy(100,200,"不错继续加油!!!!");
else outtextxy(100,200,"不要灰心!继续
加油!");
setfont(20,0,"华文楷体");
setcolor(RGB(255,255,0));
outtextxy(140,320,"按任意键退出");
getch();
}
int rank_(char rank)
{
int x;
x=rank;
return x;
}