大步骤:
1打印一个菜单并可以提供选择
2电脑生成随机数字(0到100),玩家通过输入来猜测
3猜完后,由电脑输出猜数的正确性,若为正确则表示恭喜;若为错误则提示猜大还是猜小,并继续猜,直到猜对为止
第一步:
1.一运行程序就需要先打印菜单。写一个menu函数封装在main函数中,菜单中1代表玩游戏,0代表退出游戏
2.菜单打印成后需要玩家进行选择玩还是不玩,选择1进入game函数;选择0则程序运行结束;如果选择玩家选择非0或非1,则提示玩家重新选择;这里采用switch语句和break语句。因为每次游戏结束后不用重新运行程序就可以继续玩,所以要采用循环语句,又一上来就能玩要采用 do while循环,最终应该是do while循环套switch语句。do while语句中while(表达式)为input,输入1或其他数字为真进入循环;输入0为假,跳出循环
这一部分的代码如下:
void menu()
{
printf("************************\n");
printf("******** 1. play *******\n");
printf("******** 0. exit *******\n");
printf("************************\n");
}
#include<stdio.h>
main()
{
int input = 0;
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;
}
第二步和第三步:
game函数
1.一上来电脑先生成随机数放在ret变量中,用rand函数(返回0 ~32767之间的数字)来生成随机数并用srand设置随机数生成器,写成srand((unsigned int)time(NULL))放在main函数中 (这里不太懂,就不解释了,反正就是用来生成随机数的),rand() % 100 +1 (%100的余数是0~99,然后+1,范围就是1~100)来设置随机数生成范围
2.电脑提示猜数字,玩家输入数字放到guess变量中,比较guess和ret的大小, guess>ret则提示玩家猜小了,玩家继续猜直到猜对为止;guess<ret则提示玩家猜大了,玩家继续猜直到猜对为止;guess = ret则表示恭喜进入下一次游戏。这里用if else 和else if语句比较guess和ret的大小,猜对为止所以要写成while循环,当猜对数字直接break跳出循环。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game()
{
int ret = rand() % 100 + 1;
int guess = 0;
while(1)
{
printf("请猜数字:");
scanf("%d", &guess);
if ( guess > ret)
{
printf("猜大了\n");
}
else if ( guess < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
void menu()
{
printf("************************\n");
printf("******** 1. play *******\n");
printf("******** 0. exit *******\n");
printf("************************\n");
}
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;
}