1. 记录游戏开始到游戏结束的时间
2. 可选游戏难度或自定义猜数区间
一、调用控制台指令函数 system()
原型:int system(const char * string);
用法:system("") 在双引号中写入对应的指令即可调用系统终端对应的功能
需要头文件<windows.h>
部分windows控制台指令:
清屏 cls
暂停 pause
颜色设置 参考指令"color help"
color xx即可设置对应颜色 第一位表示背景颜色,第二位表示字体颜色。颜色的设置参数如下图:
二、自定义函数
1、三秒倒计时函数
调用此函数时可以产生一个三秒倒计时界面。
void count_down() {
int a = 3; //定义一个倒计时的时间变量 a(秒)
system("color 0a"); //指定倒计时在运行时的颜色
while(a >= 0)
{
system("cls");
printf("%d",a);
Sleep(1000);
a--;
}
system("pause");
system("cls");
}
2、系统检测时间
可以检测执行中间语句所用的时间。
DWORD start,end;
start= GetTickCount();
....... //中间语句
end = GetTickCount();
printf("共用时%.2lfs\n",(end-start)/1000.0);//打印出中间执行语句的时间 单位(s)
3、产生随机整数函数
可以在[M,N]区间产生一个随机整数,以使我们进行猜测。
使用srand(time(0)); rand()%(N-M+1)+M; 头文件<stdlib.h>
/* 产生一个M到N之间(闭区间)的随机正整数 */
int ran_num(int M,int N) {
int random;
srand(time(0));
random = rand()%(N-M+1)+M;
return random;
4、用户进行猜数字函数
可通过此函数进行一次一次的猜数,直到猜对跳出,猜对后显示猜测总数以及猜测所用时间,用户可根据这两个进行比较。
int list(int random) {
int num,cnt = 0,i = 1;
start= GetTickCount();
while(1) {
printf("第%d次机会:",i);
scanf("%d",&num);
if(num > random) {
printf("往小点猜\n");
cnt++;
}
else if(num < random) {
printf("往大点猜\n");
cnt++;
}
else {
printf("恭喜您,猜对啦。\n");
cnt++;
break;
}
i++;
}
end = GetTickCount();
printf("共猜了%d次\n",cnt);
printf("共用时%.2lfs\n",(end-start)/1000.0);
}
5、模式选择函数
用户可以自己调整游戏难度(简单模式、普通模式、困难模式、以及自定义进行游戏)
int mode_selection() {
int i,random,M = 0,N = 0;
system("color 0e");
printf("请选择模式\n1.简单[0,50]\n2.普通[0,200]\n3.困难[0,1000]\n4.自定义\n");
scanf("%d",&i);
switch(i) {
case 1:count_down();random = ran_num(0,50);break;
case 2:count_down();random = ran_num(0,200);break;
case 3:count_down();random = ran_num(0,1000);break;
case 4:{
count_down();printf("请输入下限:");scanf("%d",&M);
printf("请输入上限:");scanf("%d",&N);random = ran_num(M,N);break;
}
}
return random;
三、全部代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int list(int random); //游戏猜点函数
void count_down(); //3秒倒计时函数
int mode_selection(); //模式选择函数
int option_to_select(); //选项选择函数
int ran_num(int M,int N); //在一个任意区间产生一个随机整数函数
DWORD start,end; //检测时间
int main() {
int random;
while(1) {
system("pause");
system("cls");
random = mode_selection();
list(random);
}
return 0;
}
int mode_selection() {
int i,random,M = 0,N = 0;
system("color 0e");
printf("请选择模式\n1.简单[0,50]\n2.普通[0,200]\n3.困难[0,1000]\n4.自定义\n");
scanf("%d",&i);
switch(i) {
case 1:count_down();random = ran_num(0,50);break;
case 2:count_down();random = ran_num(0,200);break;
case 3:count_down();random = ran_num(0,1000);break;
case 4:{
count_down();printf("请输入下限:");scanf("%d",&M);
printf("请输入上限:");scanf("%d",&N);random = ran_num(M,N);break;
}
}
return random;
}
void count_down() {
int a = 3; //定义一个倒计时的时间变量 a(秒)
system("color 0a"); //指定倒计时在运行时的颜色
while(a >= 0)
{
system("cls");
printf("%d",a);
Sleep(1000);
a--;
}
system("pause");
system("cls");
}
int ran_num(int M,int N) {
int random;
/* 产生一个M到N之间(闭区间)的随机正整数 */
srand(time(0));
random = rand()%(N-M+1)+M;
return random;
}
int list(int random) {
int num,cnt = 0,i = 1;
start= GetTickCount();
while(1) {
printf("第%d次机会:",i);
scanf("%d",&num);
if(num > random) {
printf("往小点猜\n");
cnt++;
}
else if(num < random) {
printf("往大点猜\n");
cnt++;
}
else {
printf("恭喜您,猜对啦,凭截图可找glm领取奖品,解释权归glm所有。\n");
cnt++;
break;
}
i++;
}
end = GetTickCount();
printf("共猜了%d次\n",cnt);
printf("共用时%.2lfs\n",(end-start)/1000.0);
}