猜数字游戏—【C语言实现】

简介: 猜数字游戏—【C语言实现】

1. 列出游戏相关功能

    1.1 随机生成一个数字,让玩家猜

    1.2 三种可能的情况

1.2.1 猜大了,重新猜

         1.2.2 猜小了,重新猜

         1.2.3 猜对了,恭喜你,猜对了,结束游戏

    1.3 玩完一把,可以选择是否再玩一把,不用退出程序

2. 三种功能的思路解析

     2.1 功能一思路实现

要生成一个随机数,我们需要学习三个函数——rand(随机生成数字)、srand(初始化随机数——在调用rand之前)、time(返回时间戳)


rand函数:可以实现随机生成一个范围是 0 ~ RAND_MAX(32767)的数,RAND_MAX16 进制为(0x7fff)——>转为十进制数为32767


srand函数:如果给srand传递一个不变的值,这时rand随机生成的值就是不变的值,所以我们需要传一个变化的值给srand,我们发现计算机上的的时间是时刻变化的—使用time函数,返回时间戳


扩展:时间戳> 是指现在的时间减去1970年1月1日的时间,化成秒表示的数字大小,不考虑闰秒


time函数:在srand函数中调用time函数,返回时间戳,time的返回类型进行了多层包装,其实是long long (长长整型),srand需要的返回类型是unsigned int 类型,使用我们需要强转一下


注意点1:由于我们玩的那一把只需要生成一个随机数来玩,所以我们可以在主函数中调用随机生成数字部分的代码,因为主函数在程序运行时只会被调用一次,也就一把生成一个随机数,而且十分随机


注意点2:由于随机数的范围太大了,游戏体验感很差,我们可以在生成随机数后%100+1,生成的就是0~100的数字


   2.2 功能二 思路实现

猜数字部分我们可以想到用if—else语句来实现3种情况,还有使用while循环,判断条件部分恒为真,实现一直猜

    2.3 功能三 思路实现

使用do—while实现玩完一把,再玩一把

3. 代码实现

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
  printf("***************************\n");
  printf("***** 1.play   0.exit *****\n");
  printf("***************************\n");
}
//void srand (unsigned int seed);
void game()
{
  RAND_MAX;
  //1. 生成随机数
  int ret = rand() % 100 + 1;//可以生成随机数,随机数的范围是:0~32767
  //0~99
  //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()
{
  //打印菜单
  //1. 玩游戏
  //0. 退出游戏
  int input = 0;
  srand((unsigned int)time(NULL));//要给srand传递一个变化的值,计算机上的时间是时刻发生变化的
  //time函数可以返回一个时间戳
  do
  {
    menu();
    printf("请选择:>");
    scanf("%d", &input);//1 0 
    switch (input)
    {
    case 1:
      game();
      break;
    case 0:
      printf("退出游戏\n");
      break;
    default:
      printf("选择错误\n");
      break;
    }
  } while (input);
  return 0;
}

总结:


1. 这里实现的游戏目录可以简化我们玩游戏的选择种类,1(玩游戏)、0(退出游戏),后面实现通讯录、扫雷、三子棋等小游戏的时候也要用到

2. 学习了rand、srand、time等函数的功能,三个函数配合使用可以随机生成数字

相关文章
|
1月前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
96 0
|
11天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
24 1
|
1月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
|
1月前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
82 1
|
1月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
1月前
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
35 0
|
1月前
|
C语言
C语言扫雷游戏(详解)
C语言扫雷游戏(详解)
39 0
|
1月前
|
程序员 C语言
初识C语言之三子棋游戏
初识C语言之三子棋游戏
34 0
|
1月前
|
C语言
初识C语言3——函数(以猜数字游戏为例)
初识C语言3——函数(以猜数字游戏为例)
69 0
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3