猜数字游戏

简介: 猜数字游戏

经过一段时间的C语言,现在可以试着写一个简单的小游戏,猜数字游戏

游戏介绍:

1.生成一个1~100随机数,玩家进行猜测,如果猜错了就提示猜大了或猜小了,玩家再次猜测,直到玩家猜对,输出恭喜你猜对了

2.可以重复进行游戏,玩完一次还可以继续玩


1.怎么生成随机数

C语言中提供了 srand() 和 rand() 和两个库函数,要包含头文件<stdlib.h>。


rand()函数可以生成0~32767之间的一个随机数字,如果只是用这个函数,它其实生成的数是伪随机的,不是真正的随机。


如果要做到真正的的随机,那么要配合srand()函数一起使用。srand()的括号内要输入一个值,每个值会生成一系列相同的随机数。所以每次运行程序括号内的值都要不同,这时可以利用计算机上的时间,因为他是不断在变化的。这时要用到time()函数,头文件<time.h>,可以返回一个时间戳,是time_t类型,实质是long long 类型。时间戳是现在的计算机的时间减去1970年1月1日0时0分0秒得到的秒数。这个是不断变化的。


要这样写:srand((unsigned int)time(NULL));  


time后NULL的作用是time函数要传入一个指针,可以是空指针NULL。


unsigned int 的作用是强制类型转换。因为srand()函数要传入一个无符号整形unsigned int 的数,所以把time()函数返回的long long 类型强制转换为unsigned int 类型。


srand()函数整个程序调用一次就可以。


2.代码

#include <stdio.h>
#include <stdlib.h>//rand srand函数
#include<time.h>//time函数
#include<Windows.h>//system函数
void menu()//打印菜单
{
  printf("**************************\n");
  printf("*****   猜数字游戏  ******\n");
  printf("*****     1.play    ******\n");
  printf("*****     0.exit    ******\n");
  printf("**************************\n");
}
void game()//游戏内容
{
  int guess = 0;
  //rand()函数可以生成一个随机数,随机数的范围是0~32767
  int goal = rand() % 100 + 1;//生成1到100的随机数
  while(1)
  {
    printf("请输入你要猜的数字:>");
    scanf("%d", &guess);
    if (goal == guess)
    {
      printf("恭喜你猜对了\n");
      break;//跳出
    }
    else if (goal < guess)
      printf("猜大了\n");
    else
      printf("猜小了\n");
  }
}
int main()
{
  int input = 0;
  //srand初始化随机数生成器,需要传入一个变化的值,类型为unsigned int
  //计算机上的时间是时刻发生变化的
  //现在时间减去1970年1月1日
  //time函数可以返回一个时间戳,是time_t类型,也就是long long int
  //整个程序调用一次就行
  srand((unsigned int)time(NULL));
  do//利用do while循环实现可以多次游戏
  {
    menu();//调用打印菜单函数
    printf("请输入:>");
    scanf("%d", &input);
    switch (input)
    {
    case 1:
      printf("游戏开始\n");
      game();
      system("pause");//暂停一下按任意键继续
      system("cls");//清理屏幕
      break;
    case 0:
      printf("退出游戏\n");
      break;
    default:
      printf("选择错误\n");
      system("pause");
      system("cls");
      break;
    }
  } while (input);//input为0时循环结束
  return 0;
}


运行截图:

相关文章
|
6月前
|
C语言
c语言编程练习题:7-24 猜数字游戏
c语言编程练习题:7-24 猜数字游戏
42 0
|
11月前
|
算法 编译器
简单猜数字游戏的实现
简单猜数字游戏的实现
87 0
|
1月前
猜数字游戏
猜数字游戏
50 0
|
5月前
|
算法 编译器 C语言
猜数字游戏C语言代码实现
猜数字游戏C语言代码实现
|
6月前
|
C语言
猜数字游戏(详解+代码)
猜数字游戏(详解+代码)
246 1
|
6月前
|
C++
C++循环结构实现的猜数字游戏
C++循环结构实现的猜数字游戏
155 1
|
Python
Python实现猜数字游戏
Python实现猜数字游戏
137 0
|
6月前
|
前端开发 JavaScript
html+css+js开发一个猜数字游戏
【1月更文挑战第5天】html+css+js开发一个猜数字游戏
118 1
|
6月前
|
C语言
用C语言写一个猜随机数的小游戏
用C语言写一个猜随机数的小游戏
52 0
|
C++
10.【C++猜数字游戏(看一眼就会)】
10.【C++猜数字游戏(看一眼就会)】
140 0