【C语言】猜数字游戏(凸(艹皿艹 )超级超级详解)!!!(二)

简介: 【C语言】猜数字游戏(凸(艹皿艹 )超级超级详解)!!!(二)

time 函数

在了解time函数之前,我们要了解一个概念叫时间戳

下面看一下我在网上找到的一个时间戳转换工具

原来时间戳可以转变为北京时间,是另类的计时方法,但是这个是我们生活时间的时间戳,电脑上的时间戳就不一样了。我们看下面的图片就能理解

接下来看看time函数有关内容

这个函数还是比较复杂的,通俗易懂的讲,如果你往括号里面放NULL,就是返回一个时间戳,如果你放time * 类型的参数则把时间戳放在这个指针所指的那块空间里面。time_t就是一种整型,也就是返回的值就是整型。

补充一点这个函数头文件就与前面两个不一样了,是time.h

time函数与srand函数

那我们现在就能大概知道srand和time怎么搭配使用了,我们将两个函数对比一下。

因为time_t与unsigned int 类型不符,我们要用到强制类型转换,而time我们只需要加入NULL参数让它返回时间戳就行。

void game()
{
  srand((unsigned int )time(NULL));
  int ret = rand();
  printf("%d\n", ret);
}

这就是两者结合的正确写法

让我们来尝试运行一下程序

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
  printf("*******************\n");
  printf("*0.EXIT *** 1.PLAY*\n");
  printf("*******************\n");
  printf("*******************\n");
}
void game()
{
  srand((unsigned int )time(NULL));
  int ret = rand();
  printf("%d\n", ret);
}
int main()
{
  int input = 0;
  do
  {
    menu();
    printf("请选择->");
    scanf("%d", &input);
    switch (input)
    {
    case 0:
      printf("退出游戏\n");
      break;
    case 1:
      printf("猜数字游戏\n");
      game();
        break;
    default :
      printf("输入错误,请重新输入\n");
      break;
    }
  } while (input);
  return 0;
}

这里居然又出错了,居然又有细节吗?

没错,我们不应该把srand和time函数放在game里,这样好像就像是没次玩游戏时都要重新计算时间戳,所以我们要放在主函数里。

这样就对了,但是也还有个细节,还记得我们的游戏规则吗?

一定要在1-100之间的数。所以我们添加最后一个目录给出最后的究极代码

究极的最后的代码

我们如何实现让结果全在1-100区间呢?只需要对rand()%100 +1就行,

任何数%100就是0-99,0-99 都+1 就是1-100。这个大家可以理解理解

void game()
{
  int ret = rand()%100+1;
  printf("%d\n", ret);
}

然后我们就来实现猜数字

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
  printf("*******************\n");
  printf("*0.EXIT *** 1.PLAY*\n");
  printf("*******************\n");
  printf("*******************\n");
}
void game()
{
  int ret = rand()%100+1;
  int guess = 0;
  while (1)
  {
    printf("猜数字:>\n");
    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 0:
      printf("退出游戏\n");
      break;
    case 1:
      printf("猜数字游戏\n");
      game();
        break;
    default :
      printf("输入错误,请重新输入\n");
      break;
    }
  } while (input);
  return 0;
}

终于介绍完了,大家看完可以自己写一下
,这篇文章就到这里了,作者能力有限,如果有帮到你,那就点个赞吧,这对我真的很重要。


目录
相关文章
|
29天前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
73 0
|
3月前
|
机器学习/深度学习 C语言
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
【8月更文挑战第5天】本篇文章用C语言采用多文件编写实现了一个基础的扫雷游戏(附源码),并讲解了关于函数递归的基础概念及其相对应的习题练习(附源码)
40 1
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
|
1天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
10 1
|
29天前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
|
30天前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
74 1
|
1月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
1月前
|
C语言 开发者
C语言实现猜数字小游戏(详细教程)
C语言实现猜数字小游戏(详细教程)
|
1月前
|
存储 算法 安全
C语言实现扫雷游戏
C语言实现扫雷游戏
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
30天前
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
31 0