分享一句很喜欢的话:因为你的努力和摆烂都不够纯粹,所以痛苦。
当你学完了while循环,do—while循环,if语句和switch语句的时候,来自己动手尝试实现一个小游戏吧。
一 实现思路
游戏吗,肯定时要有菜单的,所以第一步呢,我们可以先实现一个菜单。
void meun() { printf("1.play 2.exit\n"); printf("选择>"); }
你看,菜单都有了,那不得先把大的框架构造好吗?这个时候,可以用switch语句,把play,exit和输入的不是菜单上的数字的情况实现一下吧。
int input; meun(); scanf("%d", &input); switch (input) { case 1://开始游戏 break;
case 2://退出游戏 break; default: break; } return 0;
好了,这就是一个框架,下一步,我们来实现游戏内容。猜测的数字大的话,输出太大了,小的话,输出太小了。
void play() { int guess; while (1) { printf("请输入数字\n"); scanf("%d", &guess);
if (guess > ret)//这个ret没有定义,不要急 { printf("太大了\n"); } else if (guess < ret) {
printf("太小了\n"); } else { printf("猜对了\n"); break; } } }
光有猜测的数字可没法玩啊,你需要让系统生成一个随机数字,但是随机数的范围又有点大,因此我们可以用下面的这个代码来实现随机数的生成随机1~100的数字。
int ret = rand() % 100 + 1;
想重复玩游戏怎么办呢?可以通过do—while循环来实现
int main() { int input; do { meun(); scanf("%d", &input); switch (input) {
case 1: //play play(); break; case 2: //退出 break; default:
printf("输入错误,请重新选择"); break; } } while (input != 2); return 0; }
二 完整代码
#include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> void
meun() { printf("1.play 2.exit\n"); printf("选择>"); } void play() { int ret =
rand() % 100 + 1; int guess; while (1) { printf("请输入数字\n"); scanf("%d",
&guess); if (guess > ret) { printf("太大了\n"); } else if (guess < ret) {
printf("太小了\n"); } else { printf("猜对了\n"); break; } } } int main() {
srand((unsigned int)time(NULL)); int input; do { meun(); scanf("%d", &input);
switch (input) { case 1: //play play(); break; case 2: //退出 break; default:
printf("输入错误,请重新选择"); break; } } while (input != 2); return 0; }
注:如果光用int ret = rand() % 100 +
1;这个,你会发现,每次的随机数都是相同的,并不能达到游戏效果,可以利用时间戳,C语言中,time函数会返回时间戳,可以用srand((unsigned
int)time(NULL));来实现。
大家可以自己动手尝试一下哦!!!!