计算机产生一个1-100之间随机数,玩家需要输入一个数字,若所猜数字大于随机数,则提示猜大了,若小于随机数,则提示猜小了,重复此过程直到猜对为止,结束本次猜数字游戏,一次游戏结束后可由玩家自己选择继续玩或退出。
步骤: 1.选择流程当进入此程序,首先给出一个选择菜单由玩家选择
当玩家依照菜单输入选择应有三种结果:
a.输入1,进入游戏
b.输入0,退出游戏
c.输入了1和0之外的数,提示输入错误,并重新输入
int main()
{
int input = 0;
do
{
//菜单
menu();
printf("请选择:>");
//玩家输入选项
scanf("%d", &input);
switch (input)
{
case 1:
//玩游戏
game();
break;
case 0:
//退出游戏
break;
default:
//输入错误
printf("输入错误,请重新输入!n");
break;
}
} while (input);
return 0;
}
菜单实现:
void menu()
{
printf("********************n");
printf("****** 1.play ******n");
printf("****** 0.exit ******n");
printf("********************n");
}
2.游戏流程
如输入1,就进入游戏
a.产生一个随机数
rand( )函数会返回一个介于 0 - RAND_MAX(32767)的随机整数,此函数与srand( )函数搭配使用
srand( )函数的参数类型是unsigned int型
time( )函数会获取当前日历时间作为time_t类型的值,返回一个时间戳,由于我们计算机的时间是每时每刻都在发生变化的,因此随机值是不同的
使用rand( ),srand( )函数要引用头文件
使用time( )函数要引用头文件
b.玩家猜数,并给出提示
guess > 随机数,提示猜大了,继续猜
guess < 随机数,提示猜小了,继续猜
guess == 随机数,提示猜对了,本次猜数结束
代码实现:#include运行结果:#include #include void menu() { printf("********************n"); printf("****** 1.play ******n"); printf("****** 0.exit ******n"); printf("********************n"); } void game() { //任何数除100后的余数范围都是0-99,再加1为1-100 int ret = rand()%100+1; int guess = 0; while (1) { printf("请猜数字:>n"); scanf("%d", &guess); if (guess > ret) { printf("猜大了n"); continue; } else if (guess < ret) { printf("猜小了n"); continue; } else { printf("恭喜您,猜对了n"); break; } } } int main() { int input = 0; //强制类型转换为unsigned int型 srand((unsigned int)time(NULL)); do { menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf("输入错误,请重新输入!n"); break; } } while (input); //当玩家选择0时,退出游戏,而此时条件判断为假,退出循环 //而选择非0时,判断为真,循环继续 return 0; }



