C与C++
文章平均质量分 94
一只爬爬虫
这个作者很懒,什么都没留下…
展开
-
m/2个人拉m盏灯后求灯的状态问题
在上一节中介绍了m个人拉m盏灯的问题。下边介绍一下m/2个人拉m盏灯的问题。本题和上一解题目的区别是:上一节的题目是求灯编号i的所有因数为奇数的情况,这个题目是找灯编号i的奇因数为奇数的情况。最终根据分析结果,灯灭的情况分两种,一种是完全平方数,一种是完全平方数的2倍。原创 2024-07-18 20:33:15 · 950 阅读 · 0 评论 -
m个人拉m盏灯后求灯的状态问题
m个人拉m盏灯问题,可以转化为求解m以内完全平方数的问题,编号为完全平方数的灯状态与初始状态相同,其他的灯状态与初始状态相反。可以利用求m以内最大完全平方数对应的平方根的方法,再根据这些平方根是连续的自然数,从而找出所有完全平方数对应的平方根,再根据这些平方根,求出所有对应的完全平方数。这种方法效率最高。原创 2024-07-18 16:10:51 · 1124 阅读 · 0 评论 -
你真的理解补码了吗?
你真的理解补码了码?补码真正的几个含义(1)一个负数的补码等于原码取反(符号位不变)加1,非负数的补码等于原码;(2)减去一个数等于加这个数的相反数的补码;(3)一个负数的反码就是这个数原码的每一位都取反,其中符号位不变,非负数的反码等于原码。原创 2024-06-06 00:24:31 · 904 阅读 · 0 评论 -
捋一捋C++中的逻辑运算(一)——表达式逻辑运算
编程中有三种结构,顺序结构、选择结构和循环结构。在选择结构中,需要用到逻辑值来判断程序选择运行的部分。这个逻辑值一般都是一个比较复杂的逻辑表达式运算的结果,用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式,计算逻辑表达式结果的过程就是逻辑运算。逻辑运算经常与if...else语句或条件表达式搭配使用。原创 2024-06-04 19:00:06 · 1269 阅读 · 0 评论 -
【ardunio】青少年机器人四级实操代码(2023年9月)
使用超声波传感器和舵机实现迎宾机器人的眼睛和手的功能。大门位于超声波传感器前方15厘米的位置,大门内侧5-15厘米范围为欢送区,外侧15-25厘范围为欢迎区。LED_A位于欢送区,LED_B位于欢迎区,舵机则位于大门处,机器人的主要任务如下:(1)没有客人进出时,舵机位于90度位置,LED_A和LED_B均熄灭;(2)客人经过欢送区时,舵机在30-90度之间循环转动,LED_A闪烁,LED_B均熄灭;(3)客人经过欢迎区时,舵机在90-150度之间循环转动,LED_B闪烁,LED_A均熄灭。原创 2023-09-23 22:46:07 · 1769 阅读 · 2 评论 -
【c++】建模分析《山歌寥哉》之《花妖》为什么是悲剧?
自从刀郎发行了《山歌寥哉》专辑之后,引爆全网。继《罗刹海市》之后,《花妖》又成为新的热点。歌词讲述了一个一对男女相恋无果,双双殉情后转世却错寻了罗盘经,空间上虽投胎在同一地点,时间上却相差了千年,后又辗转多世仍不能相遇,最后只能永远错过的悲剧爱情故事。本人借助数学建模的方法计算出女主等不到男主的概率仅为0.58%,而这么低的概率还是发生了,这就是《花妖》之所以称为悲剧的原因。原创 2023-09-19 23:51:28 · 267 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(十二)——游戏源代码、音效、图标等资源文件
本节简单介绍一下本游戏中的音效下载网站、音效处理软件,图标生成方法、ico插件链接等资源,并将最终源代码上传。原创 2023-08-21 13:50:18 · 614 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(十一)——游戏过关、通关、结束的设置
本节介绍游戏的过关、通关和游戏结束(game over)的相关设置。过关的依据是敌方死亡炮弹的数量,当达到设定数目时,即可通过这一关,当通过最后一关时,即完成通关,如果还未通关时,所有飞机的命已经没了,那游戏就结束了。每一关敌方每波炮弹数量、每关总死亡炮弹数量、炮弹移动速度、炮弹血量、炮弹伤害值都是不一样的,是随着关数的增加而递增的,也就是游戏过关的难度越来越高。本节还实现了游戏信息显示、爆炸音效、飞机开火音效、控制台窗口大小设置等功能。原创 2023-08-21 01:27:39 · 565 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(十)——子弹击落炮弹、炮弹与飞机相撞
今天这节介绍实现子弹击落炮弹、炮弹与飞机相撞的效果,增加了飞机的血量属性,炮弹撞击一次掉血三分之一,三次撞击则飞机被炮弹击落。还增加了飞机命数属性,飞机设置了3条命,飞机命数大于0的时候可以按复活键进行复活,如果命为0时,飞机不可复活。还增加了游戏暂停功能,按空格键游戏暂停,再按一次即可恢复游戏。原创 2023-08-19 19:27:39 · 1300 阅读 · 1 评论 -
【C++】做一个飞机空战小游戏(九)——发射子弹的编程技巧
本节主要介绍了飞机发射子弹的实现方法,主要从死亡期间位置、飞机开火后子弹的初始位置、开火后子弹出现的时间、子弹数组的存放技巧、子弹的飞行方向等五个方面进行了介绍。原创 2023-08-18 22:12:01 · 903 阅读 · 1 评论 -
【C++】做一个飞机空战小游戏(七)——两组按键同时检测平滑移动(GetAsyncKeyState()函数应用)
利用getch()函数可以实现键盘控制两组方向键控制两个不同颜色、造型的飞机移动,但是实际测试过程中发现,两组方向键盘会相互影响,不能实现两组方向键长按指令,而且移动有卡顿,不平滑。经过查询资料,发现可以利用windows自带的GetAsyncKeyState()函数实现可以同时检测两组按键,并且移动比较平滑。原创 2023-08-13 13:19:53 · 955 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(六)——给两架飞机设置不同颜色(cout输出彩色字符、结构体使用技巧)
随着程序设计的深入,飞机的属性越来越多,就需要构造飞机的结构体,把各项属性都放到飞机结构体中。这样,可以减少声明变量的个数,减少自定义函数的形参。使程序的逻辑性更清晰,代码量更少。本文实现了飞机设置不同颜色,不同造型。将获取按键指令单开了一个线程。原创 2023-08-07 22:47:27 · 834 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(五)——getch()控制两个飞机图标移动(控制光标位置)
通过控制光标把光标直接移动到要显示飞机图标的位置,可以避免了频繁输出换行和空格的操作,不会对屏幕上其他的图标产生影响,也消除了光标闪烁的情况。原创 2023-08-05 13:25:25 · 594 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(四)——给游戏添加背景音乐(多线程技巧应用)
本文介绍了线程创建的步骤,以及播放音频的方法,在此基础上,编写了在主程序中创建了循环播放游戏背景音乐的线程,实现了通过按键控制飞机移动和背景音乐循环播放同时进行的功能。原创 2023-08-05 00:02:16 · 1496 阅读 · 3 评论 -
【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成
本例提出了一种新的方法实现不同维数舒尔特方格的生成方法,需要用到rand()、srand()函数,在算法上采用动态取模方法。原创 2023-08-03 18:18:21 · 1113 阅读 · 0 评论 -
【c++】rand()随机函数的应用(一)——rand()函数详解和实例
c++语言中可以用rand()函数生成随机数,今天来探讨一下rand()函数的基本用法和实际应用。本系列文章共分两讲,今天主要介绍一下伪随机数生成的原理,以及在伪随机数生成的基础上,生成随机数的技巧,下一讲主要介绍无重复随机数生成的方法和舒尔特方格数字生成的实例。本文采用循序渐进的方式逐步介绍,并且贴上了实际测试的代码和结果。有不详和不实之处,请各位大神批评指正。原创 2023-08-02 22:39:54 · 17090 阅读 · 3 评论 -
【C++】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动
模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法。本例程采用模块化设计,重新优化了键盘控制飞机图标移动的初步程序,程序主体由5个功能模块组成:初始化、清屏、显示飞机图标、获取键盘指令、计算飞机新的坐标。本例程自定义了功能函数库和头文件,头文件中还采用了枚举和结构体数据类型,也采用了外部全局变量。原创 2023-07-30 20:49:21 · 1061 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动
【C++】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制图标移动在一文中介绍了如何利用getch()获得键盘码和各个键盘符号的码值。今天继续介绍,利用wsad键和方向键两种方式,实现控制图标的移动。原创 2023-07-27 17:09:42 · 1668 阅读 · 0 评论 -
【C++】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值
最近想用c++做一个小游戏,游戏的主要内容是利用键盘控制一个飞机躲避和击落屏幕顶部随机掉落敌方炮弹,飞机被敌方炮弹击中则减掉一条命,飞机也可以发射炮弹反击,每击落一个敌方炮弹,则有相应积分。游戏的思路就是利用w、s、a、d四个按键来控制飞机的移动方向,w——向上,s——向下,a——向左,d——向右;按空格键飞机发射反击炮弹。那么程序如何知道键盘哪个键被按下了呢?c++中getch()这个函数可以实现这个功能,当键盘某个按键(或某个组合按键)被按下时,利用这个函数可以获得该按键(组合)值。原创 2023-07-26 21:13:22 · 2104 阅读 · 1 评论 -
【C语言】利用队列的思维理解移位运算符和移位函数
在c语言中,尤其是单片机的C51中,移位运算操作很常见。实现移位操作的方法有两种:一是利用移位运算符,二是利用移位函数。移位运算符,是系统内置的运算操作,编译编译不用包含相关头文件;而移位函数编译要包含intrins.h头文件。移位运算符操作,移除位后舍弃,循环移位函数移出位后不舍弃,而是从另一端补位进来。原创 2022-10-14 09:39:12 · 5136 阅读 · 9 评论