小学生字母游戏视频
# include & ltconio.h & gt
# include & ltgraphics.h & gt
# include & lttime.h & gt
# pragma comment (lib," winmm . lib ")//引用Windows多媒体APT
int得分= 0;//全局变量* * * * * *整数分数
char s[5];//全局变量* * *字符类型的分数
Struct player_ //自定义结构,顺便定义一个结构变量。
{
char name[20];
int score _;
} player[11];
/* * * * * * * * * * * *函数语句* * * * * * * * * * * *
void record _();//记录对方的性能函数
void welcome();//欢迎界面函数
void指令();//游戏描述接口函数
void gane(int rank 2);//游戏功能
void记录();//显示记录功能
int rank _(char rank 1);//等级选择功能
void goodbye();//退出接口函数
* * * * * * * * * * * *主要功能* * * * * * * * * *
int main()
{
char rank 1;//rank1接受键盘输入的字符,根据字符判断等级。
int rank 2 = 15;//控制延迟时间来控制速度。
int sign = 1;//作为标记,用来标记是否弹出MessageBox对话框。
welcome();//调用欢迎接口函数
说明();//调用游戏的什么功能?
record();//调用显示记录函数
Inputbox (player [10])。姓名,20,“请输入玩家昵称”;//获取对话框形式的用户输入函数。
rank 1 = getch();//读入一封信
rank 2 = rank _(rank 1);//调用level函数
游戏(rank 2);//调用游戏函数
HWND wnd = GetHWnd();
while(sign)//作为标记符号执行循环。
If (MessageBox(wnd),“游戏结束!!!\n让我们再来一局,挑战更高的分数"," Ask ",MB _ yes no | MB _ icon question)= = id yes)
游戏(rank 2);
其他
{
符号= 0;
再见();
}
closegraph();
返回0;
}
/* * * * * * * * * * * * * *记录性能函数* * * * * * * * *
作废记录_()
{
FILE * fp//文件指针
int i,j;
struct player _ t;//定义结构变量T,在冒泡法大的时候使用。
玩家[10]。score _ =分数;//将本局得分赋给本局用户的结构变量。
Fp=fopen ("record。dat”、“Rb”);//打开二进制文件
for(I = 0;我& lt10;i++)
{
fread(玩家[i]。name,20,l,FP);//读取记录中的分数和名字。
弗雷德(& amp玩家[我]。score_,4,l,FP);
}
fclose(FP);//关闭二进制文件
for(j = 0;j & lt10;J++) //冒泡排序
for(I = 0;我& lt10-j;i++)
如果(玩家[i]。分数_)
{
t = player[I];
玩家[I]=玩家[I+1];
player[I+1]= t;
}
Fp=fopen ("record。dat”、“WB”);//打开文件
for(I = 0;我& lt10;I++) //将排序后的数据存储在记录文件中。
{
fwrite(player[i])。name,20,l,FP);
fwrite(& amp;玩家[我]。score_,4,l,FP);
}
fclose(FP);//关闭文件
}
/* * * * * * * * * * * * * * * *欢迎界面函数* * * * * * * * * *
无效欢迎( )
{
char ch
mciSendString(" open \ " RES \ \ Sleep away . MP3 \ " alias my music ",NULL,0,NULL);
initgraph(640,480);//初始化绘图界面
图像img//定义图像对象
loadimage(& amp;img," RES \ \ 00 . jpg ");//将图片读入img对象
putimage (0,0 & amp;img);//显示坐标(0,0)处的图像对象
ch = getch();//吸收一个密钥
clear device();//清除屏幕
}
/* * * * * * * * * * * * * *游戏描述界面功能* * * * * * * * * *
无效指令()
{
int c = 255//控制变色的变量
setcolor(黄色);//设置颜色
Setfont (30,0," bold ");//设置字体
Outtextxy(0,0,“游戏描述”);//输出文本
setcolor(白色);
Setfont(28,0,“反”);
Outtextxy(0,30,“每局先掉200个字母”);//输出文本
Outtextxy(0,58,“秒,请按数字键选择游戏关卡”);
Outtextxy(0,86,“第三,统计点击次数”);
Setfont(30,0,“中文字体”)
Outtextxy (20,220,“等级123456789”);
Outtextxy(20,260," key 123456789 ");
而(!kbhit ()//kihit()的作用是判断是否有字幕输入。
{
setcolor(RGB(c,255,0));
Setfont (80,0,“斜体”);
Outtextxy(140,130,“请选择一个等级”);
setcolor(RGB(c,0,255));
setfont(100,0,“威肯登咖啡馆NDP”);
outtextxy(100,135,“走吧!!! ");
c-= 25;//控制颜色的可变自还原。
if(c & lt;0)c = 255;//当控制颜色的变量小于0时,将255赋给c。
clear device();//清除屏幕
}
/* * * * * * * * * * * *退出界面功能* * * * * * * * * * * *
作废再见()
{
int c = 255//控制变色变量
clear device();//清除屏幕
setcolor(黄色);
Setfont (48,0," bold ");
Outtextxy (104,120,“最终得分为:“);
Setfont (48,0,“中文斜体”);
setcolor(RGB(255,255,0));
Outtextxy(140,320,“按任意键退出游戏”);
setcolor(黄色);
Setfont(48,0," bold ");
Outtextxy (104,120,“最终得分为:“);
outtextxy(104,70,player[10])。姓名);
record _();//调用记录这个成绩的函数。
而(!kbhit())
{
setcolor(RGB(255,0,c-100));//设置颜色
setfont(100,0,“威肯登咖啡馆NDP”);
outtextxy(400,90,s);//输出数字
setcolor(RGB(c,0,255));
Setfont(48,0," bold ");
如果(分数==200)
Outtextxy(100,200,"全部命中!!! ");
其他
if(score & gt;190)
Outtextxy(100,200,“还不错!坚持下去!”);
其他
outtextxy(100200,“不要灰心!坚持下去!”);
c-= 25;
if(c & lt;0)
c = 255
sleep(20);//延迟20秒
}
getch();//提供给用户时,需要等待输入后再退出。
}
/* * * * * * * * * * * *等级选择功能* * * * * * * * * *
int rank_(char rank1)
{
int rank2
Switch(rank1) //判断人品,确定等级。
{
事例“0”:rank 2 = 11;打破;
事例“1”:rank 2 = 10;打破;
情况“2”:rank 2 = 9;打破;
情况“3”:rank 2 = 8;打破;
情况“4”:rank 2 = 7;打破;
情况“5”:rank 2 = 6;打破;
情况“6”:rank 2 = 5;打破;
情况“7”:rank 2 = 4;打破;
情况“8”:rank 2 = 3;打破;
情况“9”:rank 2 = 2;打破;
默认:rank 2 = 15;打破;
}
返回rank2
}
/* * * * * * * * * * * *显示录音功能* * * * * * * *
无效记录( )
{
FILE * p;//文件指针
int a[10],j;
char b[10][10];
Fp=fopen ("Record。dat”、“Rb”);//打开文件
for(j = 0;j & lt10;j++)
{
fread(player[j].姓名,20,1,FP);//读取文件中的信息
弗雷德(& amp玩家[j]。score_,4,1,FP);
}
fclose(FP);//关闭文件
setfont(60,0,“Arial”);
setcolor(RGB(250,250,0));
outtextxy(250,0," top 10 ");
for(j = 0;j & lt10;j++)
{
sprintf("b[j],%d ",player[j]。score _);//将整数转换为字符。
setcolor(RGB(0,100,255));
setfont(40,0," Arial ");
outtextxy(420,50+40*j,b[j]);
outtextxy(120,50+40*j,player[j]。姓名);//输出名称
/* * * * * * * * *游戏功能* * * * * * * * * * * * * *
无效游戏(int rank2)
{
clear device();//清除屏幕
得分= 0;//清除原始分数
Outtextxy(0,0," Player:");
outtextxy(90,0,player[10])。姓名);
setfont(20,0,“Arial”);
outtextxy(100460)“人生有享受片刻优雅宁静的权利,那就来玩字母游戏让你放松一下吧!”);
int I;
char目标;//目标字母
char键;//用户的密钥
intx,y;//字母的位置
int flag = 1;//标记退出键是否被按下。
int sum = 0;//分数计数
int num = 200//指定落款字母的个数。
srand(time(NULL));//随机时间种子,设置第一个随机函数的值。
setfillstyle(黑色);//设置下面矩形内部图片的颜色。
setcolor(黄色);//
线(0,450,640,450);//用3行定义工作区。
线(0,440,640,440);//用3行定义工作区。
线(0,40,640,40);//用3行定义工作区。
while(flag & amp;& amp数字)
{
Setfont(40,0,"孔祥é");//设置字母的字体和大小。
I = rand()% 2;//rand()函数返回0到32767之间的整数。
如果(我)
target = 97+rand()% 26;//生成任何小写字母
其他
target = 65+rand()% 26;//生成任何大写字母
x = rand()% 610;//产生任何下落位置。
for(y = 41;y & lt380;y++)
{
setcolor (RGB(255,0,255));
outtextxy(x,y,target);//显示字母
if(kbhit())
{
key = getch();//获取用户密钥。
if((key = = target)| |(key = = target-32)| |(key = = target+32))
{
得分++;//分数统计
sprintf(s,“%d”分数);
setfont(30,0,“Arial”);
Outtextxy(500,0,“分数”);
outtextxy(600,0,s);//输出分数
条形(x-10,y-10,x+35,y+50);//点击,用黑框擦掉字母。
打破;//跳出循环,进行下一个字母。
}
Else if (key==27) //判断是否按下。
{
flag = 0;//如果按ESC,退出游戏主循环。
打破;
}
}
睡眠(rank 2);//控制清除字母的时间。爱你就是控制下降速度。
bar(x,y,x+35,y+60);//擦除底部字符
}
num-;//计数
}
}