要求为:做一个猜测一个1-100范围内的随机数字的小游戏
1.菜单制作
构建一个菜单的函数,到时候主函数直接使用就可以了
void menu()//菜单 { printf("************************n"); printf("****** 1.开始游戏 ******n"); printf("****** 0.退出游戏 ******n"); printf("************************n"); }
2.然后写主函数,主函数大体框架
运用一个do while循环函数,因为游戏结束了我希望还能够再来一把,所以用do while 函数,最后游戏结束了再判断是否再次进行游戏
一开始的菜单也给与一个开始游戏的选项,使用一个switch分支来处理第一次输入的值,这个时候除了输入1和0以外,输入别的数字,也会再次返回到开头让我们再次选择是否进行游戏
在输入1的时候引入了一个game函数,这个函数我还没有定义,只是提前先放进去
int main() { int begin = 0; do { menu();//打印菜单 printf("请选择是否开始游戏:>"); scanf("%d", &begin); switch (begin) { case 1: printf("请输入1-100数字:>"); game(); break; case 0: printf("退出游戏n"); break; default: printf("输入错误请重新输入n"); break; } } while (begin); return 0; }
3.定义game函数
game函数就是游戏的主体,这个游戏我分为两个部分:1.生成一个1-100的随机数 2.把我们输入的数字跟那个随机数进行比较
(我这里为了限制数字在1-100的范围,采用了%100 + 1的式子,不局限与这个范围,可以想设置多大就设置多大)
void game()//猜数字游戏 { //1.生成随机数 srand((unsigned int)time(NULL)); int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100 //printf("%dn", r); 测试随机数用的 }
先创建一个随机数,我用的方法就是拿时间戳和c语言自带的一个随机数来创建的,这里测试发现数字随机,但是不完全随机,生成的数字之间差距比较小,我就把
srand((unsigned int)time(NULL));
这个初始化的表达式放在了主函数第一行,就好了
生成1-100的随机数解决了就解决第二个问题:接受一个键盘输入的数字跟这个随机数进行比较并给予回馈
void game()//猜数字游戏 { //1.生成随机数 int r = rand()%100 + 1;//%100 = 0-99 + 1 =1-100 //printf("%dn", r); 测试随机数用的 //2.输入数字去比较 while (1) { int num = 0; scanf("%d", &num); if (num < r) { printf("小了,再猜:>"); } else if (num > r) { printf("大了,再猜:>"); } else { printf("恭喜你,猜对了n"); break; } } }
因为这个游戏只要不猜对就不会结束,所以让while一直循环,直到猜对了跳出循环
挺简单的一个小游戏,就是实现随机数有点麻烦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)