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;
}

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

相关文章
|
3月前
|
C语言
C语言之斗地主游戏
该代码实现了一个简单的斗地主游戏,包括头文件引入、宏定义、颜色枚举、卡牌类、卡牌类型类、卡牌组合类、玩家类、游戏主类以及辅助函数等,涵盖了从牌的生成、分配、玩家操作到游戏流程控制的完整逻辑。
112 8
|
2天前
|
定位技术 C语言
c语言及数据结构实现简单贪吃蛇小游戏
c语言及数据结构实现简单贪吃蛇小游戏
|
1月前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
51 19
|
1月前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
77 18
|
1月前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
57 18
|
1月前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
52 13
|
1月前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
43 6
|
1月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
56 5
|
3月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
91 2
|
3月前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
53 1