C语言程序设计——猜数字游戏

简介: C语言程序设计——猜数字游戏

游戏玩法:每次随机生成一个1~100之间的数字,玩家通过输入数字来猜这个数,如果没猜中则提示玩家猜大了或者猜小了,直到玩家猜中数字结束游戏。


游戏玩法非常简单,那么怎么实现呢?


首先对内容进行分析,我们首先需要生成一个随机数,可以考虑通过rand函数来实现:


num = rand() % 100 + 1


但是当我们写完代码调试试玩会发现每次的随机数都是相同的,并不能达到游戏效果,所以我们要在之前加入如下代码:


srand((int)time(NULL));//随机数发生器初始化


这样,每次我们都会重新产生一个新的随机数。


接下来我们则需要构造循环来实现玩家猜数字的过程,并且通过玩家给入的数字不断提示玩家猜大了还是猜小了。代码实现如下:


void Game() {
  int num = rand() % 100 + 1;//生成随机数
  int x = 0;
  while (1) {
  printf("请输入你猜的数字:");
  scanf("%d", &x);
  if (x == num) {
    printf("恭喜你,猜对了!\n");
    break;
  }
  else if (x < num) {
    printf("猜小了。\n");
  }
  else {
    printf("猜大了。\n");
  }
  }
}


这样,我们游戏的主体就已经实现了,除此之外,我们还可以为游戏写一个菜单来供玩家选择玩游戏还是结束游戏退出。实现比较简单,直接上代码:


void Menu(){
  printf("--------------------------------\n");
  printf("-----------   1. Play   --------\n");
  printf("-----------   0. Exit   --------\n");
  printf("--------------------------------\n");
}


最后,我们只需要写一个选择函数来判断玩家的选择和进行对应的操作就完成了!


游戏完整代码实现如下:


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Game();
void Menu();
int main() {
  int i = 0;
  srand((int)time(NULL));//随机数发生器初始化
  do {
  Menu();//调用菜单打印函数
  printf("请输入你的选择:");
  scanf("%d", &i);
  switch (i) {
  case 1:
    Game();//调用游戏函数
    break;
  case 0:
    printf("游戏结束!");
    break;
  default:
    printf("你的输入有误,请重新输入!\n");
    break;
  }
  } while (i);
  printf("再见!\n");
  return 0;
}
void Menu(){
  printf("--------------------------------\n");
  printf("-----------   1. Play   --------\n");
  printf("-----------   0. Exit   --------\n");
  printf("--------------------------------\n");
}
void Game() {
  int num = rand() % 100 + 1;//生成随机数
  int x = 0;
  while (1) {
  printf("请输入你猜的数字:");
  scanf("%d", &x);
  if (x == num) {
    printf("恭喜你,猜对了!\n");
    break;
  }
  else if (x < num) {
    printf("猜小了。\n");
  }
  else {
    printf("猜大了。\n");
  }
  }
}


效果展示:


image.png


相关文章
|
3天前
|
C语言
C语言实战演练之游戏框架
C语言实战演练之游戏框架
|
4天前
|
存储 算法 C语言
【C 言专栏】用 C 语言开发游戏的实践
【5月更文挑战第5天】本文探讨了使用C语言开发游戏的实践,包括选择适合的游戏类型(如贪吃蛇、俄罗斯方块),设计游戏框架、图形界面和逻辑,以及音效添加。文章还强调了性能优化、测试调试、跨平台挑战及未来发展趋势。对于热衷于C语言的开发者,这是一次挑战与乐趣并存的探索之旅。
【C 言专栏】用 C 语言开发游戏的实践
|
11天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
11天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
11天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
11天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
12天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
12天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
15天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
1天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
9 2