[C语言] 猜数字小游戏「功能优化」

简介: 游戏思路: 自动产生一个1~100的随机数。猜数字进行。

游戏思路:

自动产生一个1~100的随机数。

猜数字进行。

当你猜对的时候就 恭喜你猜对了,然后游戏结束。

当你猜的过程中猜错了的话,就会告诉你两种情况:1、猜大了,2、猜小了,然后再继续猜数字,直到猜对为止!

游戏可以一直玩,直到我们想要退出游戏即可!

注:本代码还用到了些操作指令系统以及自定义颜色函数包括睡眠函数以及菜单函数的一些知识都是来优化程序的! 以及一些特殊情况,当你输入的值错误的话,会提示你输入的数字错误,重新输入。运用到了静态局部计算每次猜数字的次数,之所以用静态局部变量是为了保证出了作用域不会被销毁,延长变量的生命周期的值。


这里我们需要知道一个知识点:

随机数

在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:


int rand (void);

使用 <time.h> 头文件中的 time() 函数即可得到当前的时间(精确到秒),就像下面这样:


srand((unsigned)time(NULL));          

srand函数在工程中调用一次即可!

游戏代码示例如下:

//1.电脑会生成一个随机数 2.猜数字
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
#define Number 100
void color(short x) //自定义函根据参数改变颜色 
{
  if (x >= 0 && x <= 15)//参数在0-15的范围颜色
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);  //只有一个参数,改变字体颜色 
  else//默认的颜色白色
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
void menu() //界面菜单函数
{
  color(0);
  system("cls");
  color(16);
  printf("|--------猜数字游戏\^o^/------|\n");
  printf("|****************************|\n");
  printf("|-------★1:开始游戏★-------|\n");
  printf("|-------★0:退出游戏★-------|\n");
  printf("|****************************|\n");
  printf("|--------INPUT(1~100)--------|\n");
  printf("\n");
}
//游戏具体实现功能
int game()
{
  //1.生成随机数
  //rand();功能随机生成数字 0~32767之间 
  int red = 0;//red负责接收rand的参数
  int guess = 0;//猜数字初始值
  red = rand()%100+1;//rand生成1-100数字。
//这里解释一下为什么是1-100:而rand()%100表示取100以内的随机数,即取了随机数之后再对100取余。因而是0~99.
  //2.猜数字
  while (1)
  {
        //计数功能,输入数字进行计次。
    while (1)
    {
      static int i;
      i++;
      color(5);
      printf("|═══════════════════════|\n");
      printf("|第%d次-->猜数字>(*^_^*):|\n",i);
      printf("|═══════════════════════|\n");
      printf("---\n");
      color(14);
      scanf("%d", &guess);
      printf("---\n");
      if (guess == red)
        i = 0;
      break;
    }
        //一共三种情况
    if (guess>red && guess<=Number)
    {
      color(9);
      printf(" ------\n");
      printf("|猜大了|\n"); 
      printf(" ------\n");
    }
    else if (guess>Number)
    {
      printf("|═══════════════════════════|\n");
      printf("|宁输入的数字大于游戏规定范围\n");
      printf("|═══════════════════════════|\n");
    }
    else if (guess<red)
    {
      color(9);
      printf(" ------\n");
      printf("|猜小了|\n");
      printf(" ------\n");
    }
    else
    {
      color(11);
      printf("\n");
      printf("|------------|\n");
      printf("|恭喜你猜对了|\n");
      printf("|------------|\n");
      printf("休息5s再来吧(*^_^*)\n");
      Sleep(5000);//睡眠5s
      break;
    }
  }
  return red;
}
int main(void)
{
  int number = 0;
  //拿时间戳来设置随机数字的生成起始点time
  srand((unsigned)time(NULL));//srand();功能:生成随机数,要在rand()前调用
  //srand函数在工程中调用一次即可
  do
  {
    menu();//打印出菜单
    color(12);
    printf("~~~~~~~~~~~~~~~~~~~~~\n");
    printf("请选择是否登入游戏->:");
    scanf("%d", &number);
    printf("\n~~~~~~~~~~~~~~~~~~~~~\n");
    //switch用于多分支语句:在此程序中分支1和0,如果输入其它(数字)用default进行错误
    switch (number)
    {
    case 0:
      printf("退出游戏\n"); 
      break;
    case 1:
      game();//猜数字游戏
      break;
    default:
      color(13);
      printf("|════════════════════|\n");
      printf("|青柠重新输入ありがど|\n"); 
      printf("|════════════════════|\n");
      Sleep(4000);
      break;
    }
  } 
  while (number);//至少进入循环一次!
  return 0;
}
目录
相关文章
|
1月前
|
算法 搜索推荐 C语言
【C语言】冒泡排序+优化版
【C语言】冒泡排序+优化版
|
1月前
|
C语言 C++
【C语言】编写“猜数字“小游戏
【C语言】编写“猜数字“小游戏
|
1月前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
82 1
|
1月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
2月前
|
定位技术 API C语言
C语言——实现贪吃蛇小游戏
本文介绍了一个基于Windows控制台的贪吃蛇游戏的实现方法。首先,需调整控制台界面以便更好地显示游戏。接着,文章详细描述了如何使用Win32 API函数如`COORD`、`GetStdHandle`、`GetConsoleCursorInfo`等来控制控制台的光标和窗口属性。此外,还介绍了如何利用`GetAsyncKeyState`函数实现键盘监听功能。文中还涉及了`&lt;locale.h&gt;`库的使用,以支持本地化字符显示。
57 1
C语言——实现贪吃蛇小游戏
|
1月前
|
C语言 定位技术 API
【C语言】实践:贪吃蛇小游戏(附源码)(二)
【C语言】实践:贪吃蛇小游戏(附源码)
【C语言】实践:贪吃蛇小游戏(附源码)(二)
|
1月前
|
C语言 开发者
C语言实现猜数字小游戏(详细教程)
C语言实现猜数字小游戏(详细教程)
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
1月前
|
C语言
【C语言】实践:贪吃蛇小游戏(附源码)(三)
【C语言】实践:贪吃蛇小游戏(附源码)
|
1月前
|
存储 API C语言
【C语言】实践:贪吃蛇小游戏(附源码)(一)
【C语言】实践:贪吃蛇小游戏(附源码)