C语言第六弹-分支与循环小游戏(猜数字游戏)!

简介: C语言第六弹-分支与循环小游戏(猜数字游戏)!

开始制作一个熟悉循环的小游戏-猜数字游戏

建立基本思路。

1.游戏首先需要一个游戏页面让玩家选择故使用函数menu;

menu()
{
  printf("******************\n");
  printf("***1.开始游戏******\n"); 
  printf("***0.退出游戏******\n");
  printf("******************\n");
}

2.出现游戏页面需要玩家需要进行选择,那么一个游戏你需要玩很多次,那么为了满足条件,需要使用循环,那么你既需要使用循环,又需要先让循环运行一次,进行选择玩法。综上,我们就需要使用do-while循环。

#define _CRT_SECURE_NO_WARNINGS
int main()
{
int input = 0;//需要使用一个变量接受玩家的选择
  do
  {
    menu();
    printf("请选择->");
    scanf("%d", &input);
  } while (input);
return 0;
}

玩家输入数字,我们就需要根据数字,出现数字对应的玩法。此时应该考虑到,一种数字对应一种玩法,我们就可以使用switch case。

switch (input)
    {
    case 1://与菜单对应
      game();//游戏函数
      break;//记得加break 不然会导致循环继续运行下去
    case 0:
    printf("已退出!\n");
      break;
    default:
    printf("输入有误 请重新输入!\n");//如果输入其他数字,提醒玩家重新输入
      break;
    }

准备工作已经全部完成,现在就是完成game()。

生成一个随机数
//在main函数中生成时间戳
srand((unsigned int)time (NULL))//注意引头文件 <time.h>
//在game()函数中生成随机值(1-100)
int num=rand()%100+1;
定义一个变量与随机数进行比较 并反馈猜测大了或者小了
while (num1!=num)
  {
    printf("请猜一个(1-100)以内的任意数字:");
    scanf("%d", &num1);
    if (num < num1)
    {
      printf("猜大了\n");
    }
    else if (num > num1)
    {
      printf("猜小了\n");
    }
  }
  printf("恭喜您猜对了\n");

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
void menu()
{
  printf("*******************\r\n");
  printf("***1.开始游戏******\r\n"); 
  printf("***0.退出游戏******\r\n");
  printf("*******************\r\n");
}
void game()
{
  int num = rand() % 100 + 1;//生成随机数(1-100)
  int num1 = 0;
  while (1)
  {
    printf("请猜一个(1-100)以内的任意数字:");
    scanf("%d", &num1);
    if (num < num1)
    {
      printf("猜大了\n");
    }
    else if (num > num1)
    {
      printf("猜小了\n");
    }
    else
    {
    printf("恭喜您猜对了\n");
    }
  }
}
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("退出\r\n");
      break;
    default:
      printf("输入有误!\r\n");
      break;
    }
  } while (input);
  return 0;
}

升级版(限制次数)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
menu()
{
  printf("*******************\r\n");
  printf("***1.开始游戏******\r\n"); 
  printf("***0.退出游戏******\r\n");
  printf("*******************\r\n");
}
game()
{
  int num = rand() % 100 + 1;//生成随机数(1-100)
  int num1 = 0;
  int count = 5;//设定次数
  while (count)
  {
    printf("你还有%d次机会\n",count);
    count--;//循环一次 count--
    printf("请猜一个(1-100)以内的任意数字:");
    scanf("%d", &num1);
    if (num < num1)
    {
      printf("猜大了\n");
    }
    else if (num > num1)
    {
      printf("猜小了\n");
    }
    else
    {
      printf("恭喜您猜对了\n");
    }
  }
  if (count == 0)
  {
    printf("次数已耗尽,正确答案是%d\n",num);//没有猜对,结束循环,并打印正确值
  }
}
int main(void)
{
  int input = 0;
  srand((unsigned int)time(NULL));
  do
  {
    menu();
    printf("请选择->");
    scanf("%d", &input);
    switch (input)
    {
    case 1:
      game();
      break;
    case 0:
      printf("退出\r\n");
      break;
    default:
      printf("输入有误!\r\n");
      break;
    }
  } while (input);
  return 0;
}

如有不对,欢迎指正 谢谢!

相关文章
|
4天前
|
C语言
C语言之分支结构
C语言之分支结构
24 0
|
3天前
|
C语言
C语言——入门分支与循环
C语言——入门分支与循环
3 0
|
4天前
|
C语言
C语言实战演练之游戏框架
C语言实战演练之游戏框架
|
4天前
|
C语言
初识C语言~分支语句
初识C语言~分支语句
|
4天前
|
存储 算法 C语言
【C 言专栏】用 C 语言开发游戏的实践
【5月更文挑战第5天】本文探讨了使用C语言开发游戏的实践,包括选择适合的游戏类型(如贪吃蛇、俄罗斯方块),设计游戏框架、图形界面和逻辑,以及音效添加。文章还强调了性能优化、测试调试、跨平台挑战及未来发展趋势。对于热衷于C语言的开发者,这是一次挑战与乐趣并存的探索之旅。
【C 言专栏】用 C 语言开发游戏的实践
|
4天前
|
C语言
【精通C语言】:分支结构if语句的灵活运用
【精通C语言】:分支结构if语句的灵活运用
26 1
|
4天前
|
C语言
【C生万物】C语言分支和循环语句
【C生万物】C语言分支和循环语句
|
4天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
3天前
|
C语言
C语言—内存函数的实现和模拟实现(内存函数的丝绸之路)
C语言—内存函数的实现和模拟实现(内存函数的丝绸之路)
17 0
|
3天前
|
C语言
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
C语言—字符函数与字符串函数(字符问题变简单的关键之技)
4 0