马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
猜数字游戏代码
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- void meun()
- {
- printf("**********************\n");
- printf("******* 1.play *******\n");
- printf("******* 0.quit *******\n");
- printf("**********************\n");
- }
- void game()
- {
- int rand_number = rand() % 100 + 1;//随机数的范围是1~100
- int input2 = 0;
- int right = 100;//最大是100
- int left = 1;//最小是1
- int count = 5;//猜数字机会
- printf("猜数字游戏开始\n开始猜数字\n");
- while (count)
- {
- printf("请输入:");
- scanf("%d", &input2);
- if (input2 > rand_number)
- {
- count--;
- right = input2;
- printf("猜大了,范围是 %d--%d\n",left,right);
- printf("你还有%d机会\n", count);
- }
- if (input2 < rand_number)
- {
- count--;
- left = input2;
- printf("猜小了,范围是 %d--%d\n", left, right);
- printf("你还有%d机会\n", count);
- }
- if (input2 == rand_number)
- {
- printf("恭喜你猜对了\n");
- break;
- }
- }
- if (count == 0)
- {
- printf("游戏失败\n");
- printf("要猜的数字是%d", rand_number);
- }
- }
- int main()
- {
- srand((unsigned int)time(NULL));
- meun();
- regain:
- printf("请选择:");
- int input1 = 0;
- scanf("%d", &input1);
- switch (input1)
- {
- case 1:
- {
- printf("进入游戏\n");
- game();
- break;
- }
- case 0:
- {
- printf("退出游戏\n");
- break;
- }
- default:
- {
- printf("输入错误,请重新输入\n");
- goto regain;
- }
- }
- return 0;
- }
复制代码 猜数字游戏思绪
1.菜单
2.玩游戏还是退出游戏
3.游戏–设置随机数
4.猜数字
1.菜单
- void meun()
- {
- printf("**********************\n");
- printf("******* 1.play *******\n");
- printf("******* 0.quit *******\n");
- printf("**********************\n");
- }
复制代码 提示玩家输入1表示玩游戏,输入0表示退出游戏
2.玩游戏还是退出游戏
运用 switch语句实现
- regain:
- printf("请选择:");
- int input1 = 0;
- scanf("%d", &input1);
- switch (input1)
- {
- case 1:
- {
- printf("进入游戏\n");
- game();
- break;
- }
- case 0:
- {
- printf("退出游戏\n");
- break;
- }
- default:
- {
- printf("输入错误,请重新输入\n");
- goto regain;
- }
- }
复制代码 input1 = 1进入游戏
input = 0退出游戏
input1等于其他数字时提示输入错误,重新输入
重新输入用goto语句实现,在上面这个代码中,会跳到regain这里
3.游戏–设置随机数
使用rand()函数设置随机数,为确保每次运行步伐时天生的随机数序列不同,通常需要使用srand()函数来设置随机数种子
srand()函数使用time(NULL)作为种子,意味着随机数种子会根据当前时间变革,从而使得每次运行步伐天生的随机数序列不同
rand() srand()的头文件是stdlib.h
time()的头文件是time.h
- 1 srand((unsigned int)time(NULL));
- 2 int rand_number = rand() % 100 + 1;//随机数的范围是1~100
复制代码 4.猜数字
判断输入的数与随机数那个大,输入的数比较大就输出猜大了,输入的数比较小就输出猜小了,相等就输出猜对了,并且停止循环(运用break)
- void game()
- {
- int rand_number = rand() % 100 + 1;//随机数的范围是1~100
- printf("猜数字游戏开始\n开始猜数字\n");
- while (1)
- {
- printf("请输入:");
- scanf("%d", &input2);
- if (input2 > rand_number)
- {
- printf("猜大了\n");
- }
- if (input2 < rand_number)
- {
- printf("猜小了"\n);
- }
- if (input2 == rand_number)
- {
- printf("恭喜你猜对了\n");
- break;
- }
- }
- }
复制代码 到这猜数字的基本思绪就完成了
当然还可以改进,好比显树模围,多少次机会等等
left = 1 right = 100表示随机数的范围是1~100
count = 5表示有五次猜数字的机会
假设输入的input2 = 45,假如猜大了,让right = input2范围就变成了left -- right即1 -- 45;假如猜小了,让left = input2 范围就变成了left -- right即45 -- 100
每次猜完机会减一,即count--,当count == 0时,机会为0,游戏竣事
- void game()
- {
- int rand_number = rand() % 100 + 1;//随机数的范围是1~100
- int input2 = 0;
- int right = 100;//最大是100
- int left = 1;//最小是1
- int count = 5;//猜数字机会
- printf("猜数字游戏开始\n开始猜数字\n");
- while (count)
- {
- printf("请输入:");
- scanf("%d", &input2);
- if (input2 > rand_number)
- {
- count--;
- right = input2;
- printf("猜大了,范围是 %d--%d\n",left,right);
- printf("你还有%d机会\n", count);
- }
- if (input2 < rand_number)
- {
- count--;
- left = input2;
- printf("猜小了,范围是 %d--%d\n", left, right);
- printf("你还有%d机会\n", count);
- }
- if (input2 == rand_number)
- {
- printf("恭喜你猜对了\n");
- break;
- }
- }
- if (count == 0)
- {
- printf("游戏失败\n");
- printf("要猜的数字是%d", rand_number);
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |