c语言猜数游戏案例(二):(改进版)

1 概述

1.1 背景介绍

       在传统的 C 语言编程开发过程中,开发者通常需要在本地计算机上搭建开发环境,安装编译器、编辑器等必要工具,但这种方式存在诸多局限性,例如本地资源受限、跨平台开发不便以及团队协作困难等。随着云计算技术的迅猛发展,云主机为 C 语言编程提供了全新的解决方案。

       开发者空间提供的云主机环境,具备强大的计算能力、灵活的资源配置以及便捷的远程访问功能,为 C 语言开发工作带来了极大的便利。开发者无需在本地安装复杂的开发工具链,只需通过网络连接到云主机,即可利用其高性能的硬件资源进行代码编写、编译和调试工作。此外,云主机环境还支持多用户同时访问和协作开发,满足了团队开发的需求。

       在本案例中,我们将重点介绍如何使用开发者空间的云主机进行 C 语言编程开发,结合 CodeArts IDE for Cangjie 这一高效的开发工具,实现代码的快速编写与运行,充分展现云主机在 C 语言开发领域的优势,为开发者提供一种高效、灵活且易用的编程开发方式,无论是在个人项目开发还是团队协作项目中,都能极大地提升开发效率和质量。

1.2 适用对象

· 个人开发者

· 高校学生

1.3案例时间

本案例总时长预计30分钟。

1.4 案例流程

登录开发者空间;

打开并进入云主机;

配置 C 语言编程开发环境;

进行 C 语言编程开发

1.5资源总览

资源名称规格单价(元)时长(分钟)
开发者空间云主机4vCPUs | 8GB | ARM | Ubuntu030

2 猜数游戏(改进版)

2.1  项目背景

   数字猜字谜游戏是一种特殊的猜谜游戏,它通过数值提示谜底,让玩家在猜测过程中体验挑战和乐趣。前面实现的猜数游戏(简易版)虽然能够随机生成数值并判断猜测结果,同时提供了两次猜测机会,但未充分考虑玩家的意图,并且采用了条件运算符进行判断,导致功能不够完整。现在通过学习程序的3种基础结构,改进项目的逻辑设计,采用选择结构(如if、if…else或switch语句)来完善游戏的判断功能。

2.2  需求分析

在猜数游戏(改进版)项目中,需要实现以下功能。

(1)猜数游戏支持玩家个性化选择,如输入1进入游戏,输入2退出游戏。

(2)猜测数值的取值范围为0~20,不宜过大。

(3)给予玩家2次猜测机会,若第1次猜测正确,则不进行第2次猜测。

(4)若玩家第1次猜测不正确,系统将对比猜测答案并给出提示信息,帮助玩家进行第2次猜测。

(5)每次参加猜数游戏时,猜测的数值会随机变化。

(6)游戏结束后,给出正确答案。

2.3  算法设计

通过分析项目需求,使用C语言完成项目程序设计,具体算法设计步骤如下。

第1步:定义3个整型变量x、t、m,其中x表示玩家参加游戏的编号,t表示随机生成的猜测数值,m表示玩家输入的猜测数值。

第2步:输入x的值。若x=1,则提示进入游戏,并跳转到第3步;若x=0,则退出游戏;若x等于其他数值,则输出输入错误信息,并退出游戏。

第3步:使用srand函数设置随机数值生成器的种子,time(0)(用于获取当前时间,单位为秒)函数值作为种子值。

第4步:使用rand函数生成随机数值,与21进行取模运算后,将结果赋值给变量t,从而确保猜测数值t的取值范围为0~20。

第5步:提示玩家进行第1次猜测,并输入猜测数值m。若m=t,则输出第1次猜测正确的信息,并跳到第7步,否则判断m与t的大小关系,给出相应的提示信息,并跳转到第6步。

第6步:提示玩家进行第2次猜测,并输入猜测数值m。若m=t,则输出第2次猜测正确的信息,否则输出猜测错误的信息。

第7步:输出猜数游戏的正确答案。

根据算法设计步骤,绘制程序流程图。

cd055504d3bb44c1abfde9e0cefe0e2b

2.4  项目实现

程序:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
   int  t,m,x;
   printf("*****************猜数游戏(改进版)*****************\n");
   printf("*************1:进入游戏   0:退出游戏**************\n");
   scanf("%d",&x);
   if(x==1)
  {
      srand(time(0));         // 设置随机数值生成器的种子
       t=rand()%21;         // 生成随机数值的取值范围(0~20)
       printf("******************欢迎进入猜数游戏******************\n");
       printf("******************猜数范围为0~20******************* \n");
       printf("**********************第1次*************************\n");
       printf("请输入猜测的数值:  ");
       scanf("%d",&m);
       if(m==t)
          printf ("恭喜您,第1次猜对了!\n");
       else
      {
          if(m>t)
               printf("数值猜大了!\n");
           else  
              printf("数值猜小了!\n");
         printf("**********************第2次*************************\n");
          printf("请输入猜测的数值:  ");
          scanf("%d",&m);
         if(m==t)
              printf("恭喜您,第2次猜对了!\n");
          else
              printf("很遗憾,重新开始游戏吧!\n");
       }
       printf("正确的数值是:%d\n",t);
 }
   else
      if(x==0)
        printf("退出游戏\n");
      else
        printf("输入错误,退出游戏!");
}

导入源码编译运行:

8614a99445c7472b9180f29ecba6d473

运行结果:

de98ba3139444fa3b0c6f69fa3c30715



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值