服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - c语言轻松实现猜数字小游戏

c语言轻松实现猜数字小游戏

2022-11-14 13:47马桶上看算法 C/C++

猜数字是兴起于英国的益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。游戏规则为一方出数字,一方猜,今天我们来用C实现这个游戏案例

一、前言

在学习了循环、分支、和函数之后,可以写一些简单的小游戏来给自己的编程之路增添一份乐趣。不仅提升了编码能力,还可以边学边玩,简直妙哉妙哉!

 

二、游戏逻辑

1.打印选择菜单(1.play、0.exit)

2.调用rand()函数生成随机数

3.设置随机数范围

4.猜数字

5.判断猜的大小

 

三、思维导图

c语言轻松实现猜数字小游戏

 

四、游戏过程

c语言轻松实现猜数字小游戏

 

五、代码分析

1.生成随机数的方法

c语言轻松实现猜数字小游戏

仅仅使用rand()函数来生成随机数是不行的,因为它每玩一次生成的随机数都是相同的,即随机数不随机,所以要通过srand()函数,种下一个随机种子,来产生随机数。根据时间每时每刻都是变化的,可以用time()时间函数来产生种子。

c语言轻松实现猜数字小游戏

c语言轻松实现猜数字小游戏

这里time_t的类型就是在C语言中被定义为长整型,而srand()函数的参数类型为unsignedint(无符号整形),所以使用时要强制类型转换,而且**time()**函数,不需要设置参数,故用NULL代替。

2.设置随机数范围的方法

我们已经让系统随机生成了一个随机数,因为系统生成的随机数范围太大,猜起来比较耗时,我们先确定一个随机数的范围,在0–100之间。rand()%100+1,就可以得到0-100之间的随机数。rand()%100得到的是1~99之间的随机数,再加上1就是1~100之间的随机数了。

 

六、完整代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
  printf("**************************\n");
  printf("*******   1.play   *******\n");
  printf("*******   2.exit   *******\n");
  printf("**************************\n");
}
void game()
{
  //猜数字游戏的实现
  //1.生成随机数
  //rand函数返回了一个0-32767之间的随机值
  //时间- 时间戳
  int ret = rand() % 100 + 1;
  //%100的余数是0-99,然后+1,范围就是1-100
  //printf("%d\n",ret);
  //2.猜数字
  int guess = 0;
  while (1)
  {
      printf("请猜数字:");
      scanf("%d", &guess);
      if (guess < ret)
      {
          printf("猜小了\n");
      }
      else if (guess > ret)
      {
          printf("猜大了\n");
      }
      else
      {
          printf("恭喜你,猜对了\n");
          break;
      }
  }
}
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;
}

到此这篇关于c语言轻松实现猜数字小游戏的文章就介绍到这了,更多相关c语言猜数字游戏内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_63033419/article/details/124311980

延伸 · 阅读

精彩推荐
  • C/C++Qt实现带字数限制的文字输入框

    Qt实现带字数限制的文字输入框

    这篇文章介绍了Qt实现带字数限制文字输入框的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    师从名剑山6182022-11-04
  • C/C++C语言实现简单的图书管理系统

    C语言实现简单的图书管理系统

    这篇文章主要为大家详细介绍了C语言实现简单的图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Sriven9622021-10-27
  • C/C++C++ 路径中./、../、/代表的含义

    C++ 路径中./、../、/代表的含义

    这篇文章主要介绍了C++ 路径中./、../、/代表的含义,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Young__Fan5692022-03-08
  • C/C++C++/GoLang如何实现自底向上的归并排序

    C++/GoLang如何实现自底向上的归并排序

    这篇文章主要给大家介绍了关于C++/GoLang如何实现自底向上的归并排序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    NothingLeft了11062021-09-26
  • C/C++C语言实现俄罗斯方块小游戏

    C语言实现俄罗斯方块小游戏

    这篇文章主要为大家详细介绍了Linux下C语言实现俄罗斯方块小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    半片瓜6012021-05-26
  • C/C++C语言的基本编写规范你了解吗

    C语言的基本编写规范你了解吗

    这篇文章主要为大家介绍了C语言的基本编写规范,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...

    DSTBP4992022-08-27
  • C/C++C语言实现简单班级成绩管理系统

    C语言实现简单班级成绩管理系统

    这篇文章主要为大家详细介绍了C语言实现简单班级成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    和谐创新8832022-10-10
  • C/C++C语言简明讲解类型转换的使用与作用

    C语言简明讲解类型转换的使用与作用

    类型转换(type cast),是高级语言的一个基本语法。它被实现为一个特殊的运算符,以小括号内加上类型名来表示,接下来让我们一起来详细了解...

    清风自在 流水潺潺4742022-11-12