很简单的一个小游戏:猜数字。
电脑随机生成数字(这里主要使用了rand这个函数)
这里还要用到时间戳。
C语言提供了一个函数time。可以返回一个时间戳。
生成随机数
int ret = rand();
假如你要使这个时间戳有个范围的话,就比如1~100把。
int ret = rand()%100+1;
rand()%100是等于99的所以要加一。
猜数字的代码大概就是:
这里使用了自己定义函数,并且使用了while循坏。
void game()
{
int ret = rand() % 100 + 1;
int num=0;
while (1)
{
printf("\t\t\t<-猜数字开始->\t\t\t \n");
scanf("%d", &num );
if (num < ret )
{
printf("猜小了\n");
}
else if (num > ret )
{
printf("猜大了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
}
主函数:
这是主函数,这里使用了switch语句。
srand((unsigned int)time(NULL));
这里大概可以分解为srand(x),x=time()。 unsigned int 是强制转化为int类型。time函数还需要返回值。而我们不需要返回值。所以填写NULL。NULL指的是空指针。
int main()
{
int input=0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:->");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择有误,请重新输入\n");
break;
}
} while (input);
return 0;
}
整个游戏的代码为
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf(" ->猜数字菜单<- \n");
printf(" ->1.开始游戏<- \n");
printf(" ->0.结束游戏<- \n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
}
void game()
{
int ret = rand() % 100 + 1;
int num=0;
while (1)
{
printf("\t\t\t<-猜数字开始->\t\t\t \n");
scanf("%d", &num );
if (num < ret )
{
printf("猜小了\n");
}
else if (num > ret )
{
printf("猜大了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
}
int main()
{
int input=0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:->");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择有误,请重新输入\n");
break;
}
} while (input);
return 0;
}