C语言实现猜数字游戏

C语言实现猜数字游戏
可以先想一想思路,主要是通过判断来实现,比如输入一个数,与随机数相对比,如果大了就在屏幕上面输出猜大了,如果小了就输出猜小了,所以就可以通过这样实现,所以先弄一个菜单,通过调用函数去实现。创建一个菜单函数,所以就出现了菜单的选择,选择什么样进行游戏,选择什么样的退出游戏,所以就用 do while 循环,因为do while 没执行一次都会判断是不是继续循环,所以就有了基本框架,也要用到switch 语句,因为在选择菜单的时候应该这样,按照输入的内容进行执行 。
void menu()
{
printf(“猜数字游戏\n");
printf("
1.play 0.exit \n");
printf("
***********************\n”);
}
int main()
{
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;
}
根据上面的实现方法,所以就可以按照代码这样实现,进入主函数的时候,通过do while 循环,是为了判断输入的数字是不是有效,或者应该怎么执行,然后就是调用menu 菜单函数,在menu 函数上面输出菜单,然后通过scanf 来输入一个数字,来判断do while 的循环条件,所以为了 do while 的循环,所以可以将菜单里面的退出指令变成0,因为在 do while 循环里面可以把输入的数变成判断条件,所以这样退出程序就做好了,通过switch 语句来执行相关的代码,所以就像菜单那样,如果输入的是1,那么switch 语句中就调用game 函数,但是如果输入错误的话,就应该提示输入错误,所以使用default(其他情况),输出选择错误,重新选择。这样一个大框架就搭建好了。然后再写game 函数。
game 函数是实现游戏,所以game 里面应该进行上面说的那样,输入一个数,与随机数相对比,如果大了就在屏幕上面输出猜大了,如果小了就输出猜小了。
void game()
{
int ret = 0;
int guess = 0;
printf(“开始猜数字\n”);
ret = rand() % 100 + 1;
while (1)
{
printf(“请猜数字:>”);
scanf("%d", &guess);
if (guess > ret)
{
printf(“猜大了\n”);
}
else if (guess < ret)
{
printf(“猜小了\n”);
}
else
{
printf(“恭喜你,猜对了”);
break;
}
}
}
通过game 函数来实现,ret是与输入的数对比的数,因为要生成随机数,所以通过rand 来生成一个随机数,通过生成随机数,来进行猜数字,所以通过一个循环来实现,所以通过while 来实现,因为每次猜错都要继续猜,所以使用while 循环来执行,判断条件是1,因为1永远为真,所以会一直执行,如果猜对的话,就跳出循环,使用break ,如果ret放在循环里面的话,就会一直变化,一直是随机值,永远猜不对,所以要放在循环外面,但是当实现的时候,就会发现每次猜的数字都一样,所以要使用时间来作为随机值输出的来源,因为时间永远在变,所以这样就不会一样了,所以在main 函数里面,将rand 的来源变成时间,就是 srand((unsigned int)time(NULL)) 通过这样就把rand 的来源变成时间了,所以在主函数里面就变成了这样。
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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lockey-s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值