改编版猜数字小游戏,猜错了就黑屏(整蛊版本)

news2024/11/13 9:04:50

1. 前情提要

在前一篇博客中,我们了解到了如何获得随机数,并且通过运算可以规定所获得的这个随机数的范围在多少数值之间

那么接下来我们就需要去具体去实现猜数字游戏的各种布置

2. 布置主菜单

玩一个游戏,最开始的界面都会是一个主菜单,英文名也就是menu

在我们打印菜单的时候,也经常构建一个函数叫menu,这是一个我们自己创造的函数,我们给这个menu函数赋予的功能也就是打印出一个主菜单到屏幕上面

在这个函数内部,我们也只需要构建我们需要打印出来的菜单内容即可

41b6eceeb95a417fa71ff0d679e63ef5.png

如图所示,我们所需要的菜单就这样被打印出来了

那么接下来我们还需要具体去识别我们对于菜单里面的选择,对于这种精确的选择内容,此时就需要用到switch语句了

133b4af665e94b99931e83477f388ccc.png

这样一处理,我们菜单的效果就实现了

3. 具体猜数字的游戏实现

这个时候我们就需要真正开始写游戏的运行了,其实到这里就很简单了

我们只需要用到我们前面学到的如何生成一个随机数的知识,然后通过if循环,不断对比我们猜的数字与随机数的大小就可以实现猜数字游戏的基本逻辑了

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void menu()
{
	printf("***********主菜单*************\n");
	printf("******   1. play   ********\n");
	printf("******   0. exit   ********\n");
	printf("*********敬请期待**************\n");
}



void game()
{
	//1. 生成随机数
	int r = rand() % 100 + 1;
	//2. 猜数字
	int guess = 0;
	int count = 6;//最多猜6次
	while (count)
	{
		printf("你还有%d次机会\n", count);
		printf("请猜数字:>");
		scanf("%d", &guess);
		if (guess < r)
			printf("猜小了\n");
		else if (guess > r)
			printf("猜大了\n");
		else
		{
			printf("恭喜你猜对了,随机数是:%d\n在茫茫人海中相遇不易,请珍惜现在身边的每位同伴\n", r);
			break;
		}
		count--;
	}
	if (count == 0)
	{
		printf("机会使用完,你失败了,正确的数字是:%d\n我们生活中的每次美好邂逅都是极度幸运的\n", r);
	}
}

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("退出游戏\n");
			break;
		default:
			printf("选择错误,重新选择!\n");
			break;
		}

	} while (input);

	return 0;
}

然后将game函数用到游戏中,可以在打印的格式中加上一些自己想写的特殊的文案(也让这个猜数字游戏更有趣一些)

4. 整蛊类黑屏关机代码

我们之前提到过,人对计算机的操作本质上都是需要计算机去识别我们的指令的

在我们电脑上,其实关机的操作也是通过一段代码执行的

在下面的介绍,就以Windows系统为例

Windows系统中想要关机,可以利用一个库函数叫做system函数

system函数的使用语法如下

    system("shutdown -s -t 60");

shutdown的意思就是关机,根据英文本意明白即可

后面的60则代表了设置的等待关机时间,单位为秒,设置60就代表60秒后系统便会自动关机

大家可以利用上面的函数自己实践一下,在Windows系统上都是适用的

值得强调的是,由于引用了一个新的库函数,那么必然也要包含其对应的头文件

而system库函数的头文件则是#include<windows.h>

5. 整蛊改版

那么我们如何加入一些整蛊元素呢?

解除关机需要用到的函数也是system

使用语法如下:

system("shutdown -a");

这个函数就可以解除关机了

既然已经确定了要关机,那么我们是否能够对解除关机做出一些限制条件???

此时我们可以用到strcmp这个库函数,它的作用就是判断两个字符串是否是相等的,如果是相等的,那么输出结果就会是0,此时就可以解除关机

如果对方并没有按照你想的办法输入文字,那么她的电脑就非关不可了

#include <windows.h>
#include <string.h>

//system可以执行系统命令
int main()
{
	char input[20] = {0};
	system("shutdown -s -t 60");

again:
	printf("请注意,你的电脑将在一分钟内关机,如果输入:我是猪 就取消关机\n");
	scanf("%s", input);

	if (0==strcmp(input,"我是猪"))//两个字符串不能使用等号比较大小!!!应该使用strcmp-比较字符串大小的库函数
	{
			system("shutdown -a");
	}
		else
		{
			goto again;
		}
	return 0;
}

上面的“我是猪”只是一个示例,可随意更改printf内所打印的文字内容

6. 两眼一黑的猜数字游戏改编版

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<string.h>
void a()
{
    printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    printf("☆☆1.Guess the numbers.☆☆\n");
    printf("☆☆☆☆☆2.exit☆☆☆☆☆☆\n");
    printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
}
void b()
{
    int c = rand()%100+1;
    int d = 0;
    int e = 6;
    while (e) 
    {
        printf("你还有%d次机会。\n",e);
        printf("请猜数字:");
        scanf("%d",&d);
        if (d<c)
        {
            printf("猜小了。\n");    
        }
        else if (d>c)
        {
            printf("猜大了。\n");
        }
        else
        {
            printf("哇,你居然猜对了,真是太棒了,难道你是天才!\n");
            break;
        }
        e--;
    }
    if (e==0)
    {
        printf("很遗憾,你失败了,正确的数字是:%d.\n",c);
        char input[20] = {0};
    system("shutdown -s -t 60");
    
again: 
    printf("请注意,你的电脑将在一分钟后自动关机,如果要取消关机,请输入:我是猪。\n");
    printf("请输入:");
    scanf("%s",input);
    if (strcmp("我是猪。",input) == 0)
    {
    printf("已成功取消关机。\n");
    system("shutdown -a");
    }
    else
    {
    printf("输入错误,请重新输入:");
    goto again;
        }
    }
}
int main() 
{
    int g=0;
    srand((unsigned int)time(NULL));
    do
    {
        a();
        printf("请选择1或2:"); 
        scanf("%d",&g) ;
        switch(g)
            {
            case 1:
            b();
            break;
            case 2:
            printf("游戏结束。\n");
            break;
            default:
            printf("选择错误,请重新输入。\n");
            break;
            }
    }
        while(g);
        return 0;
}

 

 

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

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

相关文章

iPhone13手机照片被误删,有什么方法可以恢复吗?

在日常使用手机时&#xff0c;我们可能因为误操作、手机崩溃、或者其他原因&#xff0c;导致iPhone13手机中的照片丢失。遇到这种情况&#xff0c;手机误删照片如何恢复&#xff1f;在本文中&#xff0c;我们将分享3个妙招&#xff0c;帮助您恢复iPhone13上误删的照片。 一、通…

2024年第二季度SSD出货量下滑18.4%,降至6750万部,但容量增长4.1%至90.6EB

2024年第二季度SSD Exabytes实现连续季度增长 仅企业级PCIe SSD有所增长&#xff1a;尽管所有其他类别均出现下滑&#xff0c;但企业级PCIe SSD的增长是由其所有终端市场需求增加所驱动的。总体SSD出货量&#xff1a;总体SSD出货量环比下降18.4%&#xff0c;降至6750万部&…

Leetcode JAVA刷刷站(76)最小覆盖子串

一、题目概述 二、思路方向 为了解决这个问题&#xff0c;我们可以使用滑动窗口的方法。滑动窗口是数组/字符串问题中常用的一个技巧&#xff0c;特别是用于寻找子数组或子字符串的问题。 这里的关键是&#xff0c;我们需要知道字符串t中每个字符的出现次数&#xff0c;并在遍…

【Python】函数高阶【上】

本篇文章将讲解函数高阶部分&#xff1a; &#xff08;1&#xff09;函数的嵌套 &#xff08;2&#xff09;闭包 &#xff08;3&#xff09;装饰器 1、函数的嵌套 Python是以函数为作用域&#xff0c;在作用域中定义的相关数据只能被当前作用域或子作用域使用。 &#xf…

(QT-UI)十四、在时间轴上绘制一段段时间片

本系列预计实现 ①刻度上方文字显示&#xff0c; ②时间轴拖动效果&#xff0c; ③时间轴刻度缩放&#xff0c; ④时间轴和其他控件联动显示&#xff0c; ⑤鼠标放置到时间轴&#xff0c;显示具体时间。 ⑥通过定时器&#xff0c;实时更新时间轴 ⑦时间轴上绘制时间片 完…

PostgreSQL11 | 事务处理与并发控制

PostgreSQL11 | 事务处理与并发控制 本文章代码已在pgsql11.22版本上运行且通过&#xff0c;展示页由pgAdmin8.4版本提供&#xff0c;本文章第一次采用md文档&#xff0c;效果比csdn官方富文本编辑器好用&#xff0c;以后的文章都将采用md文档 事务管理简介 事物是pgsql中的…

自己动手写CPU_step2_构建SOPC

ROM实现指令寄存器 上一篇中实现的五级流水线需要一个输入&#xff0c;这个输入是指令数据&#xff0c;而指令数据是通过取指阶段的PC控制的&#xff0c;PC会一直循环的取指令。 指令寄存器实现&#xff1a; //指令寄存器 module inst_rom(input clk,inp…

【C++ Primer Plus习题】2.1

问题: 解答: #include <iostream> using namespace std;int main() {cout << "在下国林!" << endl;cout << "家住天府之国!" << endl;return 0; }运行结果: 考查点: 预处理头文件命名空间main函数c的标准输出和换行字符…

机器学习/数据分析--通俗语言带你入门K-邻近算法(结合案例)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 机器学习是深度学习和数据分析的基础&#xff0c;接下来将更新常见的机器学习算法注意&#xff1a;在打数学建模比赛中&#xff0c;机器学习用的也很多&a…

初识Linux · yum和vim

目录 前言&#xff1a; 1 yum 1.1 yum是什么&#xff1f; 1.2 Centos的生态和yum的本地配置 1.3 yum的相关操作 2 vim 前言&#xff1a; 我们学习Linux的时候&#xff0c;是有编程语言的基础的&#xff0c;那么呢&#xff0c;我们学习Linux的时候最迫切的就是希望能打印…

Flat Ads:全球金融应用现状与发展趋势深度解析

随着全球数字化进程的加速,金融科技(FinTech)应用正逐渐成为现代生活不可或缺的一部分。从移动银行到数字支付,再到智能理财工具,金融应用正在重新定义传统金融服务的边界,并推动行业的深刻变革。 本篇文章 Flat Ads 将从全球视角出发,深入剖析当前金融应用市场的现状,探讨未来…

开关电源测试系统方案:系统结构功能、特点、测试项目

为了应对开关电源测试中的复杂挑战&#xff0c;我们推出了NSAT-8000系列开关电源ate测试系统&#xff0c;它以其全面的功能和灵活性&#xff0c;适应了电源产品测试场景&#xff0c;解决了测试难题。 开关电源测试系统 NSAT-8000系列之开关电源测试系统适用于AC/DC和DC/DC开关电…

苹果macbook电脑怎么玩《黑神话:悟空》游戏教程来了

火爆全网《黑神话&#xff1a;悟空》是一款基于中国神话故事《西游记》改编的动作角色扮演游戏&#xff0c;它在PC平台上的系统要求已经公布&#xff0c;但目前官方尚未发布Mac版本。不过&#xff0c;Mac用户可以通过使用系统兼容工具如CrossOver来尝试在Mac上运行这款游戏。Cr…

《黑神话:悟空》游戏攻略:第一回合打法教程!

《黑神话&#xff1a;悟空》是一款以西游记为背景的动作角色扮演游戏&#xff0c;玩家在游戏中将面对各式各样的强大敌人和BOSS。在游戏的第一回合中&#xff0c;你将遇到牯护院、灵虚子、幽魂等多个BOSS。以下是详细的BOSS打法攻略&#xff0c;帮助你在战斗中游刃有余。你可以…

Ubuntu22安装MySQL8,并关闭大小写

最近因为设置MySQL不区分大小写踩了很多坑&#xff0c;把解决过程记录下来。 首先我这个是阿里云全新服务器&#xff0c;操作系统&#xff1a;Ubuntu 22.04 64位 连接到服务器后&#xff1a; 1 安装MySQL 1.1 更新软件包 以下命令皆已单独放至代码块内&#xff0c;直接复制…

服务器配置miniconda环境

目录 1. 查看服务器的操作系统2. 查看服务器的cuda版本3. 配置开发环境3.1 安装miniconda3环境3.2 创建虚拟环境3.3 在虚拟环境中安装pytorch3.4 在虚拟环境中安装库 1. 查看服务器的操作系统 执行代码&#xff1a; uname -a发现是Ubuntu 22.04 2. 查看服务器的cuda版本 执…

鸿蒙OS应用开发例题

单选题 第24/60题 自动跳下一题0 在编译构建HAP时&#xff0c;会从HAP模块及依赖的模块中收集资源文件&#xff0c;如果不同模块下的资源文件出现重名冲突 时&#xff0c;会按照优先级进行覆盖&#xff0c;现在有一个HAP依赖了两个HAR,依赖配置如下所示: // oh-package. j…

柔性织物处理 | 山大宋锐老师 | 最新演讲

笔者是清华在读研究生&#xff0c;主要关注人形机器人、具身智能。将持续分享行业前沿动态、学者观点整理、论文阅读笔记、知识学习路线等。欢迎交流 最近听了宋老师的演讲&#xff0c;以下是学习整理。部分图截自直播&#xff0c;若模糊望见谅 演讲信息&#xff1a; 【会议】…

郁李:花语与植物特征的魅力探寻

一、花语的奥秘 郁李的花语丰富多样&#xff0c;其中 “忠实” 代表着坚定不移的忠诚和信任&#xff0c;寓意着一份真挚而深厚的情感&#xff0c;无论外界如何变化&#xff0c;都能保持初心不变。“困难” 这一花语似乎不太讨喜&#xff0c;它可能象征着人生道路上难免会遭遇的…

iOS 通知

iOS 通知分为本地推送和远程推送两类 一. 本地推送使用流程 1. 注册通知 //请求通知权限 UNUserNotificationCenter *center [UNUserNotificationCenter currentNotificationCenter];[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizati…