记忆训练游戏源码C语言版.docx
《记忆训练游戏源码C语言版.docx》由会员分享,可在线阅读,更多相关《记忆训练游戏源码C语言版.docx(17页珍藏版)》请在冰点文库上搜索。
记忆训练游戏源码C语言版
//头文件
#include
#include
#include
#include
//成员变量申明
inttime1,time2;//游戏开始时间,游戏结束时间
intcount,right;//玩家玩游戏的次数,玩家通关关数
charrestart;//玩家选择是否继续
staticintt=1000;//静态初始化t
//函数申明
voidmenu();//申明主菜单方法
voidload();//申明倒计时子函数
voidcharSellet();//申明字母记忆菜单函数
voidletter(intx);//字母记忆子函数
voidscoreGame(intscore,intright);//游戏结果函数
voidendGame(void);//游戏结束界面
voidallGame();//全键盘记忆功能
voiddelay(intt);//延时函数
voidnumberGame();//申明数字记忆菜单函数
voidsetNumberGame();//申明数字记忆游戏方法
//主函数
voidmain()
{
time1=time(NULL);//记录玩家开始时的时间
menu();//主函数调用主菜单方法
}
//定义主菜单函数
voidmenu()
{
intchoice;//定义一个参数
system("color4f");//设置背景颜色
//输出主菜单界面
printf("\n\n\n");
printf("\t******************记忆训练游戏*****************\n");
printf("\n\t******设计者:
万平时间:
2015.1.4******");
printf("\n\t***********************************************************\n");
printf("\n\t************1.数字记忆************\n");
printf("\n\t************2.字母记忆************\n");
printf("\n\t************3.全键盘记忆************\n");
printf("\n\t************0.退出************\n");
printf("\n\t***********************************************************\n");
printf("\t***********************************************************\n");
printf("\n\t请选择:
");//提示玩家输入
scanf("%d",&choice);//获取玩家输入的编号,并用choice接收
switch(choice)//对玩家输入的编号进行判断
{
case0:
endGame();//调用游戏结束函数
break;
case1:
system("cls");
setNumberGame();//调用数字游戏方法
break;
case2:
charSellet();//调用字母游戏方法
break;
case3:
load();//调用倒计时子函数
allGame();//调用全键盘记忆函数
break;
default:
//错误输入判断
printf("\n\t您的输入有误,请重新输入!
");
break;
}
}
//定义倒计时子函数
voidload()
{
inti;
system("cls");
printf("\n\n\n\n\n\t\t\t\tloading...\n\n\n\n\n\n\n\n");
for(i=0;i<80;i++)//循环输出>
{
printf(">");
delay(10);//停留10毫秒
}
}
//定义延时函数
voiddelay(intt)
{
Sleep(t);//界面停留函数
}
/*
*01:
数字记忆模块
*/
//定义数字记忆菜单
voidsetNumberGame()
{
intchoice;
system("cls");
//输出难度菜单界面
printf("\n\n\n\n");
printf("\n\t***********************************************************\n");
printf("\n\t************1.一般************\n");
printf("\n\t************2.中等************\n");
printf("\n\t************3.困难************\n");
printf("\n\t************4.疯狂************\n");
printf("\n\t************5.返回************\n");
printf("\n\t***********************************************************\n");
printf("\n\t请选择:
");//提示玩家输入
scanf("%d",&choice);//获取玩家输入的编号,并用choice接收
switch(choice)//对玩家输入的编号进行判断
{
case1:
load();//调用倒计时子函数
numberGame();//调用数字记忆子函数
break;
case2:
load();//调用倒计时子函数
t=t-500;//改变显示时间
numberGame();//调用改变时间后的数字记忆函数
break;
case3:
load();//调用倒计时子函数
t=t-900;
numberGame();
break;
case4:
load();//调用倒计时子函数
t=t-950;
numberGame();
break;
case5:
system("cls");
menu();//调用主菜单函数
default:
printf("\n\t您的输入有误!
按任意键继续!
");
break;
}
}
//定义数字游戏方法
voidnumberGame()
{
ints1=0,s2=1,input,num;//s1,s2用于随机函数的个数,input存放玩家输入的数字,num存放随机数字
do
{
system("cls");//清屏
srand((unsigned)time(NULL));//以当前时间作为开始
num=((s1=s1*10+1)+rand()%((s2=s2*10)-s1));//产生一个随机数
count++;//统计游戏次数
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t请记住此数字:
%d",num);//输出随机数
delay(t);//调用延时函数
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\t【第");printf("%d",right+1);printf("关】");
printf("\n\n\t请输入刚才的数字:
");//玩家输入看到的数字
scanf("%d",&input);//获取玩家输入的数字,并存放于input中
if(input==num)//判断玩家输入的数字与随机数是否相等
{
system("cls");
right++;//分数加1
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t闯关成功,继续挑战!
...");
Sleep(1000);//显示停留1000毫秒
system("cls");
continue;//跳转到循环开始
}
else//如果不相等
{
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t输错了,是否继续?
(y/n):
");
scanf("%c",&restart);//获取玩家的输入,并存放在restart中
if(restart=='Y'||restart=='y')
{
s1=s1/10;//恢复错误时的数字个数
s2=s2/10;//恢复错误时的数字个数
break;
}
elseif(restart=='N'||restart=='n')
{
scoreGame(count,right);//调用游戏结果函数
}
}
while
(1);
}
}
while
(1);
}
/*
*02:
字母记忆模块
*/
//定义字母记忆菜单函数
voidcharSellet()
{
intchoice;
system("cls");
//输出字母记忆菜单界面
printf("\n\n\n\n");
printf("\n\t***********************************************************\n");
printf("\n\t************1.大写字母************\n");
printf("\n\t************2.小写字母************\n");
printf("\n\t************3.返回************\n");
printf("\n\t***********************************************************\n");
printf("\n\t请选择:
");//提示用户输入
scanf("%d",&choice);//获取玩家输入的编号,并用choice接收
switch(choice)//对玩家输入的编号进行判断
{
case1:
load();//调用倒计时子函数
letter
(1);//调用字母记忆函数,显示大写字母
break;
case2:
load();//调用倒计时子函数
letter
(2);//调用字母记忆函数,显示大写字母
break;
case3:
system("cls");
menu();//调用主菜单函数
default:
printf("\n\t您的输入有误!
按任意键继续!
");
break;
}
}
//定义字母记忆游戏
voidletter(intx)
{
inti;
intn=1;//初始化循环变量
charnum[100],input[100];//用于存放随机产生的字母,用于存放玩家输入的字母
srand((unsigned)time(NULL));//从当前时间开始
do{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t请记住这些字母:
");
if(x==1)//判断用户选择大写字母
for(i=0;i{
num[i]=rand()%26+'A';//随机产生大写字母
printf("%c",num[i]);//输出大写字母
}
elseif(x==2)
{
for(i=0;i{
num[i]=rand()%26+'a';//随机产生小写字母
printf("%c",num[i]);//输出小写字母
}
}
num[n]='\0';//给数组加一个结束标志
count++;//统计游戏次数
Sleep(500);//界面停留500毫秒
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\t【第");printf("%d",right+1);printf("关】");
printf("\n\n\t请输入刚才的字母:
");
scanf("%s",input);//获取玩家输入的字母,并存放在input中
if(strcmp(num,input)==0)//比较两个字符串是否相同
{
right++;//记录正确个数
n++;//循环上限加1
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t闯关成功,继续挑战!
...");
Sleep(1000);//显示停留1000毫秒
system("cls");
continue;//跳转到循环开头
}
else
{
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t输错了!
是否继续?
(y/n):
");
scanf("%c",&restart);//获取玩家的输入,并存放在restart中
if(restart=='y'||restart=='Y')
break;
elseif(restart=='N'||restart=='n')
{
scoreGame(count,right);//调用游戏结果子函数
break;//跳转到函数开头
}
}while
(1);
}
}while
(1);
}
/*
*03:
全键盘记忆模块
*/
//定义全键盘记忆函数
voidallGame()
{
inti;
intn=1;//初始化循环变量
charinput[100],num[100];//存放全键盘随时产生字符串与玩家输入字符
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t请记住这个字符串:
");
for(i=0;i{
num[i]=33+rand()%(125-33);//随机产生全键盘字符
printf("%c",num[i]);//输出随机产生全键盘字符
}
num[n]='\0';
count++;//记录游戏次数
Sleep(1000);
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\t【第");printf("%d",right+1);printf("关】");
printf("\n\n\t请输入刚才的字符串:
");
scanf("%s",input);//获取玩家输入的字母,并存放在input中
if(strcmp(num,input)==0)//判断字符串是否相同
{
n++;
right++;
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t闯关成功,继续挑战!
...");
Sleep(1000);//显示停留1000毫秒
system("cls");
continue;//跳转到游戏开头
}
else
{
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t游戏中...\n\n\n\n");
printf("\n\n\n\t输错了!
是否继续?
(y/n)");
scanf("%c",&restart);//获取玩家的输入,并存放在restart中
if(restart=='y'||restart=='Y')
break;
elseif(restart=='N'||restart=='n')
{
scoreGame(count,right);//调用游戏结果子函数
break;
}
}while
(1);
}
}while
(1);
}
//定义游戏结果子函数,显示玩家的分数及闯关数等信息
voidscoreGame(intscore,intright)//分数score,正确数right作为参数
{
do
{
time2=time(NULL);//获取游戏结束的时间
system("cls");//清屏
printf("\n\n\n\n\n");
printf("\t***********************************************************\n");
printf("\n\t*******************游戏结果*******************\n");
printf("\n\t*******************闯关数:
");printf("%d",score);printf("关*******************\n");//输出成功闯关数
printf("\n\t*******************得分:
");printf("%d",right);printf("分*******************\n");//输出得分
printf("\n\t*******************失败:
");printf("%d",score-right);printf("关*******************\n");//输出失败关数
printf("\n\t*******************时间:
");printf("%d",time2-time1);printf("秒******************\n\n");//输出玩家游戏时间
printf("\t***********************************************************\n");
printf("\n\t\t\t");
printf("\n\t确定退出游戏?
(y/n):
");
scanf("%c",&restart);//获取玩家的输入,并存放在restart中
if(restart=='y'||restart=='Y')
endGame();//调用结束显示函数
elseif(restart=='n'||restart=='N')
{
system("cls");
menu();//调用主菜单函数
}
}while
(1);
}
//定义游戏结束显示菜单
voidendGame()
{
system("cls");//清屏
printf("\n\n\n\n");
//输出结束菜单
printf("\n\t**********感谢你使用本游戏,祝您生活愉快!
*********\n");
printf("\n\t**********设计者:
万平时间:
2015.1.4**********\n");
printf("\n\t***********************************************************\n");
printf("\n\t***********************************************************\n");
printf("\n\t************************谢谢,再见!
**********************\n");
printf("\n\n\t\t\t");
exit(0);//退出游戏界面
}