一:猜数字游戏的雏形
部分代码如下,这下面的代码只是一个初步的框架,还不能正式的进行猜数字游戏,因为我还没有将猜数字的代码写进去,这里我先给大家解释一下是下面代码的大致意思
首先呢这个猜数字游戏我们要运用do while循环以及switch语句来初步的进行我们的猜数字游戏,当然我们可以不用do while循环,可以用while循环还有就是 for循环,但是这里我推荐大家用do while循环,因为会更加的好理解以及使用
现在我分别拆开代码来和大家一一介绍
1int main() 2{ 3 int input = 0 ; 4 do 5 { 6 printf("*********************\n"); 7 printf("****** 1.play ******\n"); 8 printf("****** 2.exit ******\n"); 9 printf("*********************\n"); 10 11 printf("请选择选项:"); 12 scanf("%d", &input); 13 14 switch(input) 15 { 16 case 1: 17 printf("游戏开始,请输入数字\n"); 18 break;//这里的break是跳出switch循环的 19 case 2: 20 printf("退出游戏\n"); 21 break; 22 default: 23 printf("输入错误,请重新输入\n"); 24 break; 25 } 26 27 } while (input); 28 return 0; 29} 30 31
这个代码呢,比较简单们就是单纯的将我们输入的值存放在input里面去,其是大家这个变量是可以随便取的,这里input的中文是输入的意思,所以推荐大家用这个变量,这样更加好理解
1int input = 0 ;
这块部分的代码就是我们的界面,比较好理解,这里我就不仔细给大家讲了
1 printf("*********************\n"); 2 printf("****** 1.play ******\n"); 3 printf("****** 2.exit ******\n"); 4 printf("*********************\n"); 5 6 printf("请选择选项:"); 7 scanf("%d", &input);
界面如下

这里呢是switch语句的代码介绍
switch语句就是把我们会出现的所有情况都一一可以列举出来,这里我们的猜数字游戏的界面我们只有三种情况,在上面那个代码就是1.play 2.exit,这个界面就是这两种情况,当然第三种情况就是我们不输入1或者2,输入了其他的输入值,那么我们的default这个情况了
注意:这里的break是跳出switch语句,不是do while循环,大家注意一下
1switch(input) 2{ 3case 1: 4 printf("游戏开始,请输入数字\n"); 5 break;//这里的break是跳出switch循环的 6case 2: 7 printf("退出游戏\n"); 8 break; 9default: 10 printf("输入错误,请重新输入\n"); 11 break; 12} 13
输入1的情况

输入2的情况

输入其他值的情况

二:分装一个函数
上面那个代码我还没有正式的将猜数字游戏的代码写进去
我们来简化一下上面的代码,此时我们要用到一个概念---封装一个函数
1.我们发现了两个函数,一个是menu()一个是game(),其实这个函数名字是可以随便取得,这里我为了好理解,就这样取的变量,menu就是菜单的意思,打开我们的猜数字游戏的界面,game就是游戏嘛,大家应该理解
1int main() 2{ 3 //下面这个代码是生成变化的(种子) 4 srand((unsigned int)time(NULL)); 5 6 int input = 0; 7 do 8 { 9 menu();//把上面那群代码封装到menu函数里面,这样就更加美观了 10 11 printf("请选择选项:"); 12 scanf("%d", &input); 13 14 switch (input) 15 { 16 case 1://选择1游戏开始 17 game();//这里需要写许多代码,同样我们直接封装代码 18 break;//这里的break是跳出switch循环的 19 case 2: 20 printf("傻逼,游戏结束了\n");//选择2游戏结束 21 break; 22 default://输入不是1或者2的情况 23 printf("输入错误,请重新输入\n"); 24 break; 25 } 26 27 } while (input); 28 return 0; 29}
下面这个代码是生成变化的(种子),这里由于编译器不认识time是整型函数,因此我们要强行转变为整型,也就在前面加上了 unsigned int(整型函数)
1srand((unsigned int)time(NULL));
下面这就是我们要将游戏界面封装进去的函数
1 menu();
具体的封装代码如下,此时我们就已经将我们的游戏界面的代码封装进去了
1void menu()//封装下面的代码,这里的函数类型,我们默认为void 2{ 3 printf("*********************\n"); 4 printf("****** 1.开始游戏 ******\n"); 5 printf("****** 2.退出游戏 ******\n"); 6 printf("*********************\n"); 7} 8 9
这个是函数的原型,我们直接给它定义为void默认的函数的意思
1void menu()
2.这里还有一个game()函数的代码的封装,代码如下
1 2void game()//封装猜数字游戏的代码,这里的函数类型,我们默认为void 3{ 4 int r = rand() % 100 + 1;//将1-100的随机数存放到 r 变量里面(生成1-100的随机数) 5 6 int count = 5;//设置只有5次猜数字的机会 7 8 int guess = 0;//设置猜数字的玩法,将我们猜的数字,存放在guess变量里面 9 while (count) 10 { 11 printf("你拥有%d次机会\n",count); 12 printf("游戏开始,请输入数字\n"); 13 scanf("%d", &guess); 14 if (guess > r) 15 { 16 printf("猜大了\n"); 17 } 18 else if (guess < r) 19 { 20 printf("猜小了\n"); 21 } 22 else 23 { 24 printf("傻逼终于猜对了,正确数字是 %d\n",r); 25 break;//结束while循环 26 } 27 count--;//每次猜错,会减少一次机会 28 } 29 if (count == 0)//次数为0,游戏结束 30 { 31 printf("没有机会了,说明你还得练,小老弟\n"); 32 } 33 34} 35
封装猜数字游戏的代码,这里的函数类型,我们默认为void
1 2void game()
这里是我们设置的随机数的范围,将1-100的随机数存放到 r 变量里面(生成1-100的随机数)
1int r = rand() % 100 + 1;//将1-100的随机数存放到 r 变量里面(生成1-100的随机数)
设置猜数字的玩法,将我们猜的数字,存放在guess变量里面
1int guess = 0;//设置猜数字的玩法,将我们猜的数字,存放在guess变量里面
设置只有5次猜数字的机会,其实我们可以不用这条件的,设置这是为了增加游戏的难度,更加好玩一些
1 int count = 5;//设置只有5次猜数字的机会
每次猜错,会减少一次机会,和上面的代码相辅相成
1count--;//每次猜错,会减少一次机会
次数为0,游戏结束
1if (count == 0)//次数为0,游戏结束
这个代码是我们给游戏设置的规则,如果我们的guess也就是我们输入的数字大于我们的r也就是随机数的话,我们就会给玩家提示你猜大了,同样的,我们猜小,系统就会提示我们猜小了,同样的猜对了也就是下面的那句话,大家可以自己设置的,可以不用和我的一样
注意:break;结束的是while循环,跳出去的不是我们的主函数啊,大家要搞清它的技术原理
1 if (guess > r) 2 { 3 printf("猜大了\n"); 4 } 5 else if (guess < r) 6 { 7 printf("猜小了\n"); 8 } 9 else 10 { 11 printf("傻逼终于猜对了,正确数字是 %d\n",r); 12 break;//结束while循环
三:猜数字游戏的完整代码
下面就是将我们上面一一拆开讲的代码全部放置在了一起,给大家好好看看
1void menu()//封装下面的代码,这里的函数类型,我们默认为void 2{ 3 printf("*********************\n"); 4 printf("****** 1.开始游戏 ******\n"); 5 printf("****** 2.退出游戏 ******\n"); 6 printf("*********************\n"); 7} 8 9void game()//封装猜数字游戏的代码,这里的函数类型,我们默认为void 10{ 11 int r = rand() % 100 + 1;//将1-100的随机数存放到 r 变量里面(生成1-100的随机数) 12 13 int count = 5;//设置只有5次猜数字的机会 14 15 int guess = 0;//设置猜数字的玩法,将我们猜的数字,存放在guess变量里面 16 while (count) 17 { 18 printf("你拥有%d次机会\n",count); 19 printf("游戏开始,请输入数字\n"); 20 scanf("%d", &guess); 21 if (guess > r) 22 { 23 printf("猜大了\n"); 24 } 25 else if (guess < r) 26 { 27 printf("猜小了\n"); 28 } 29 else 30 { 31 printf("傻逼终于猜对了,正确数字是 %d\n",r); 32 break;//结束while循环 33 } 34 count--;//每次猜错,会减少一次机会 35 } 36 if (count == 0)//次数为0,游戏结束 37 { 38 printf("没有机会了,说明你还得练,小老弟\n"); 39 } 40 41} 42 43int main() 44{ 45 //下面这个代码是生成变化的(种子) 46 srand((unsigned int)time(NULL));//这里由于编译器不认识time是整型函数,因此我们要强行转变为整型,也就在前面加上了 unsigned int(整型函数) 47 48 int input = 0; 49 do 50 { 51 menu();//把上面那群代码封装到menu函数里面,这样就更加美观了 52 53 printf("请选择选项:"); 54 scanf("%d", &input); 55 56 switch (input) 57 { 58 case 1://选择1游戏开始 59 game();//这里需要写许多代码,同样我们直接封装代码 60 break;//这里的break是跳出switch循环的 61 case 2: 62 printf("傻逼,游戏结束了\n");//选择2游戏结束 63 break; 64 default://输入不是1或者2的情况 65 printf("输入错误,请重新输入\n"); 66 break; 67 } 68 69 } while (input); 70 return 0; 71}
我们正式开始游戏
我们首先运行一下代码,然后就是这个界面

让我们来输入1开始我们的猜数字游戏!!
输入1,这里我们有五次机会去猜数字

我们猜个20,发现小了

这里的五次机会全部用完了,可惜了没有猜中,其实我们可以设置的随机数范围小,这样就更加容易了

好了,以上就是我们的全部猜数字游戏的仔细讲解,希望大家能够喜欢这个游戏!!!!!
《C语言趣味小游戏----猜数字小游戏》 是转载文章,点击查看原文。