再多猜一次就爆炸(小黑子误入)

news2024/11/22 10:23:59

目录

猜数字游戏

游戏设计思路

1.电脑随机生成一个数

2.猜数字

3.输入我是ikun,泰裤辣!  否则电脑将在一分钟后关机

游戏运行效果 

源码

代码分析 

代码实现关键语句

strcmp() 

rand()与srand()    

时间戳time()

寄语


猜数字游戏

游戏设计思路

1.电脑随机生成一个数

2.猜数字

      a>猜大了,提醒猜大了,继续猜

      b>猜小了,提醒猜小了,继续猜

      c>猜对了,恭喜你,猜对了

3.输入我是ikun,泰裤辣!  否则电脑将在一分钟后关机

      a>输入我是小黑子,警告关机

      b>输入我是ikun,泰裤辣! ,取消关机程序,奖励一个坤坤

 

游戏运行效果 

 

源码

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>


void test()     //打印游戏菜单
{
    printf("******************************************************\n");
    printf("******************************************************\n");
    printf("*********   真爱粉输入 1      小黑子输入 0    ********\n");
    printf("******************************************************\n");
    printf("*****************   1.play   0.exit   ****************\n");
    printf("******************************************************\n");
    printf("******************************************************\n");

}

void game()         //游戏主体函数
{
    
    //1.生成随机数
    int ret = rand() % 100 + 1;      //rand()函数  可以生成随机数,随机的范围是:0-32767   RAND_MAX;



    //任意一个大于大于100的数 % 100  结果的范围都为0 - 99    余数小于除数


    //猜数字
    int guess = 0;

    while (1)
    {
        printf("游戏开始,请猜数字:>");
        scanf("%d", &guess);
        if (guess > ret)
        {
            printf("猜大了,请重新猜");
        }
        else if (guess < ret)
        {
            printf("猜小了,请重新猜");
        }
        else
        {
            printf("恭喜你,猜对了\n");
            break;
        }
    }

}


//关机程序
void exitt()
{
    
    system("shutdown -s -t 60");
    
    char key[50] = { 0 };
    
    while (1)
    {
        printf("警告!!!你的电脑将在一分钟后关机,输入 我是ikun,泰裤辣! ,否则将关机\n");
        scanf("%s", key);
        if (strcmp(key, "我是ikun,泰裤辣!") == 0)
        {
            printf("太棒了,奖励你一个坤坤\n");
            system("shutdown -a");
            break;
        }
        else
        {
            continue;
        }
    }
}



int main()
{

    int input = 0;
    srand((unsigned int)time(NULL));    //要给srand传递一个变化的值,计算机上的时间是时刻发生变化的
    do
    {
        test();
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
        case 0:
            printf("退出游戏");
            break;
        case 1:
            game();
            exitt();
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }
    } while (input);

    return 0;
}

代码分析 

代码实现关键语句

strcmp() 

      strcmp()函数需要调用头文件#include<string.h>

      用于对比字符串  相同则有返回值 0

int strcmp ( const char * str1, const char * str2 );

比较两个字符串

比较C字符串str1到C弦str2.

返回值

                                            指示
<0第一个不匹配的字符在ptr1中的值低于在ptr2中的值
0两个字符串的内容相等
>0第一个不匹配的字符在ptr1中的值大于在ptr2中的值

 

rand()与srand()    

      rand()可以生成随机数   取值范围是0-32767    RAND_MAX = 0x7fff  (十六进制)

      srand()     生成随机数起点    只需要生成一次就行  注意不要放在循环内部

      rand()与srand()    需要配合使用  这是C语言的规则

时间戳time()

      可以表示计算机的实时时间,时刻在改变  

      与srand()配合使用生成随机数起点

time_t time (time_t* timer);

获取当前时间

获取当前日历时间作为类型的值时间_t.

该函数返回该值,如果参数不是空指针,它还将该值设置为由计时器.

空指针参数  (NULL)

寄语

如果你能像我一样,坚持学习C语言,以练习时长两年半为小目标,那我觉得这件事实在是,泰裤辣!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言_Printf函数返回值

目录 1. 嵌套结构 2. Printf 函数返回值 在了解Printf 函数的返回值之前&#xff0c;先来了解下什么叫嵌套结构。 1. 嵌套结构 这里直接举个例子进行介绍&#xff1a; strlen 函数计算字符串长度&#xff0c;显然打印的结果是 3 但是如果采用嵌套结构&#xff08;简单来说就…

【深度学习】基于华为MindSpore的手写体图像识别实验

1 实验介绍 1.1 简介 Mnist手写体图像识别实验是深度学习入门经典实验。Mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心&#xff0c;图像是固定大小(28x28像素)&#xff0c;其值为0到255。为简单起见&#xff0c;每…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题142环形链表II) 2023.4.24

目录 前言算法题&#xff08;LeetCode刷题142环形链表II&#xff09;—&#xff08;保姆级别讲解&#xff09;分析题目&#xff1a;算法思想环形链表II代码&#xff1a;补充 结束语 前言 本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可&#xff0c;撰写…

ESP32设备驱动-LIS3MDL磁场传感器驱动

LIS3MDL磁场传感器驱动 文章目录 LIS3MDL磁场传感器驱动1、LIS3MDL介绍2、硬件准备3、软件准备4、驱动实现1、LIS3MDL介绍 LIS3MDL 具有4/8/12/16 高斯的用户可选满量程。自检功能允许用户在最终应用中检查传感器的功能。该设备可以被配置为生成用于磁场检测的中断信号。 LIS…

Vue 3 第十四章:组件五(内置组件-transitiontransition-group)

文章目录 1. transition组件1.1. 基本用法1.2. css过渡class介绍1.3. 过渡效果命名1.3.1. 基本用法 1.4. 配合自定义动画&#xff08;animation&#xff09;使用1.5. 自定义过渡 class1.6. <Transition>组件生命周期1.7. transition 常用场景 2. transition-group组件2.1…

Java基础(十一)日期时间API

1 JDK8之前&#xff1a;日期时间API 1.1 java.lang.System类的方法 System类提供的public static long currentTimeMillis()&#xff1a;用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 此方法适用于计算时间差。 计算世界时间的主要标准有&#xff1a;…

SCAU 统计学 实验6

要确定不同培训方式对产品组装时间是否有显著影响&#xff0c;我们可以使用单因素方差分析&#xff08;One-way ANOVA&#xff09;。我们将使用以下数据&#xff1a; 培训方式 A 的样本数据 培训方式 B 的样本数据 培训方式 C 的样本数据 显著性水平&#xff08;α&#xff09…

windows下springboot集成ELK

ELK ElasticSearch Logstash Kibana的集合。ELK主要用于日志的集中管理、快速查询和分析。主要是通过 Logstash 将应用系统的日志通过 input 收集&#xff0c;然后通过内部整理&#xff0c;通过 output 输出到 Elasticsearch 中&#xff0c;其实就是建立了一个 index&#x…

【利刃出鞘】链式思维利用ChatGPT,让其成为工作中的利剑?附带初学者扫盲SpringBoot

【利刃出鞘】链式思维利用ChatGPT&#xff0c;让其成为工作中的利剑 一、一点思考二、技术学习——链式思维2.1 springboot注册bean的几种方式&#xff1f;2.2 springboot Component 注册的原理&#xff1f;2.3 springboot引用注册的Bean原理&#xff1f;2.4 private final MyB…

26-第一个Servlet项目

目录 1.Servlet是什么&#xff1f; 2.第一个Servlet项目 2.1.创建Maven项目 2.2.引入Servlet依赖&#xff08;将Maven项目改为Servlet项目(尚不完整)&#xff09; 2.3.完善Servlet项目目录——源代码目录&单元测试目录&#xff08;非必须&#xff09; 2.4.编写代码 …

4月24日作业

作业1 #include <iostream> using namespace std; template <typename T> class Node { private: T* p; //指针指向栈的首地址 int maxsize; //栈最大容量 int top-1; //栈顶 public: Node(){} //无参构造 Node(int max):maxsize(max)//有参构造 填最大容…

2022 ICPC Gran Premio de Mexico Repechaje 题解

目录 A. Average Walk&#xff08;签到&#xff09; 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; C. Company Layoffs&#xff08;签到&#xff09; 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; D. Denji1&#xff08;模拟/二分&#xff09; 思路&am…

Bsah shell的操作环境

文章目录 Bsah shell的操作环境路径与命令查找顺序使用案例 bash的登录与欢迎信息&#xff1a;/etc/issue、/etc/motdbash的环境配置文件如下login与non-login shell/etc/profile(login shell 才会读)~/.bash_profile(login shell 才会读)source&#xff1a;读入环境配置文件的…

简单介绍一下什么是“工作内存”和“主内存”(JMM中的概念)

在学习Java多线程编程里&#xff0c; volatile 关键字保证内存可见性的要点时&#xff0c;看到网上有些资料是这么说的&#xff1a;线程修改一个变量&#xff0c;会把这个变量先从主内存读取到工作内存&#xff1b;然后修改工作内存中的值&#xff0c;最后再写回到主内存。 对…

【基于gcc】手把手教你移植RT-Thread到STM32

前言 网上大多数移植RT-Thread系统的教程都是基于Keil的&#xff0c;下面将带来基于gcc版本的移植教程&#xff0c;若你还没有基于gcc的环境&#xff0c;可以查看我的这篇文章&#xff1a;VSCode搭建STM32开发环境 1、下载RT-Thread源码 RT-Thread有好几个版本&#xff0c;我…

小程序路由跳转

小程序中的路由只是单纯页面地址的跳转&#xff0c;一般在页面中使用 navigator 组件来实现&#xff0c;也有很多场景需要在 js 中根据逻辑的执行结果跳转到某个页面&#xff0c;比如&#xff1a;如果检测到用户尚未登录就需要给他跳转到登录页面 1.1navigate navigate 跳转到…

软件工程开发文档写作教程(04)—开发文档的编制策略

本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;电子工业出版社《软件文档写作教程》 马平&#xff0c;黄冬梅编著 开发文档编制策略 文档策略是由上级(资深)管理者制订的&#xff0c;对下级开发单位或开发人…

银河麒麟 Server V10 离线源建立+部署

前言 这国产操作系统真神奇&#xff0c;docker CentOS7&#xff0c; MySQL CentOS8 简直了&#xff0c;这缝合技术真是绝了&#xff01; docker CentOS7 能装最新版 23 很顺利的&#xff01; MySQL CentOS8 也是最新版8.0.33的&#xff0c;也很顺利&#xff01; 系统版本 …

权威解析,软件测试的当下分析现状

Parasoft是一家专门提供软件测试解决方案的公司&#xff0c;Parasoft通过其经过市场验证的自动化软件测试工具集成套件&#xff0c;帮助企业持续交付高质量的软件。Parasoft的技术支持嵌入式、企业和物联网市场&#xff0c;通过将静态代码分析和单元测试、Web UI和API测试等所有…

详解树与二叉树的概念,结构,及实现(下篇)

目录 一&#xff0c; 二叉树链式实现 1. 前置说明 2. 二叉树遍历&#xff08;主打的就是一个分治思想&#xff09; 2. 1 前序遍历 2. 2 中序遍历 2. 3 后序遍历 2. 4 层序遍历 3. 二叉树结点个数及高度 3. 1 二叉树节点个数 3. 2 二叉树叶子节点个数 3. 3 二叉树第…