C++版iwanna2

第二篇目录

  • 程序的流程图
  • 程序游玩的效果
  • 下一篇博客要说的东西

程序的流程图

Game.cpp
把有22行22列的二维字符数组strmap初始化为下面的图片
开始
把宏_CRT_SECURE_NO_WARNINGS定义为1
导入io流
导入cstring头文件
导入fstream文件
导入cstdio头文件
导入Player.h头文件
导入trigger.h头文件
释放std作用域下的所有东西
定义deadset函数
定义printstart函数
把窗口标题设为“I WANNA GO TO THE ''G''”

Game.cpp源文件
等待玩家按下任意一个键,按下后就清屏
清屏
break
清屏
break
break
break
break
否(break)
continue
否(清屏)
结束
把有22行22列的二维字符数组strmapr里的元素全都初始化为0
把二维字符数组strmap里的元素全都拷贝到二维字符数组strmap的里面去
创建一个Player对象p
定义字符ch为0
定义整型itrap为-1
定义整型ishoot为0
定义整型ibsv为0
创建一个fstream文件对象fs,用读模式的来打开s.txt这个文件
刷新fstream文件对象fs的文件内容
(!fs.is_open()) || fs.eof()?
释放fstream文件对象fs
把fs用写模式打开s.txt这个文件
往fstream文件对象fs输出“0 0 0 0”
释放fstream文件对象fs
把fs用读模式打开s.txt这个文件
把有3个元素的布尔数组barr里的元素全都初始化为0
把ibsv设为从fstream文件对象fs读取到的内容
设ch为0
ch < 3?
把布尔数组barr的第ch项设为ibsv按位与1按位向左移动ch的值的结果
ch自增1
把有22个元素的trigger对象数组分别初始化为trigger(20,3,20,3,0), trigger(16,5,16,6,1),trigger(19,12,20,12,2),trigger(17,13,17,13,3),trigger(17,15,17,16,3),trigger(14,14,14,15,3),trigger(13,16,13,17,3),trigger(15,18,15,19,3),trigger(11,20,11,21,4),trigger(0,16,9,16,6),trigger(8,11,9,13,7),trigger(4,5,7,9,8),trigger(9,6,9,8,9),trigger(3,1,3,3,10),trigger(11,1,11,1,11),trigger(11,3,11,3,12),trigger(13,1,14,1,13),trigger(13,7,15,8,14),trigger(15,11,17,11,15),trigger(16,12,17,12,16),trigger(21,13,21,13,17),trigger(11,8,11,8,18)
执行printstart函数
输出“\​n\​n\​n\​n\​n\​n\​​n\​t\​t\​t\​t\​t ”
输出“\​n \​033[31;1m********\​033[0m \​033[33m********\​033[0m \​033[32;1m********\​033[0m\​n”
输出“ \​033[31;1m* SAVE 1 *\​033[0m \​033[33m* SAVE 2 *\​033[0m \​033[32;1m* SAVE 3 *\​033[0m\​n”
输出“ \​033[31;1m********\​033[0m \​033[33m********\​033[0m \​033[32;1m********\​033[0m\​n\​n”
输出“游戏内:a左走 d右走 w二段跳,空中一段 z\​033[33m存档\​033[0m/射弹 r重开 \​033[31;1m“X”死\​033[0m “*”墙 \​033[31;1m“#”按钮\​033[0m,\​033[32;1m射就触发机关\​033[0m \​033[33m“S”存档\​033[0m \​033[32;1m“G”终点\​033[0m\​n开始界面:1~3选择要玩的存档 d删存档\​n\​n\​n”
把ch设为你输入的字符
把有2个元素的整型数组deadarr里的元素全都初始化为0
执行deadset函数,参数有整型数组deadarr的地址和fstream文件对象fs的引用
ch < '1' || ch > '3'?
清空缓冲区
(ch < '1' || ch > '3') && 'd' != ch?
输出“\​033[31;1m输入错误,请重新输入\​033[0m\​n\​n”
把ch设为你输入的字符
ch >= '1' && ch <= '3'
转到标签g
标签g
定义barri为ch自减1之后又自减字符“0”的ASCII码值的结果
如果trigger对象数组t的第0项的方法返回的值不为0,那么就定义字符指针cp为二维字符数组strmap的9行第20列的元素的地址,否则就定义字符指针cp为二维字符数组strmap的21行第0列的元素的地址
把解引用的cp设为字符“P”
往fstream对象fs输出ibsv加上字符“0”的ASCII码值的结果,并将结果以字符型输出
释放fstream文件对象fs
'G' == strmap[0][0]?
把有100个字符的字符串str初始化为“title I WANNA GO TO THE ''G'' : 似亡 * ”
把有100个字符的字符串stra初始化为空字符串
设字符串stra为整型数组deadarr的第barri项的元素转向字符串的结果
把字符串str连接上字符串str
执行系统命令,命令为字符串str
' ' == strmap[9][20]?
把二维字符数组strmap第9行第20列的元素设为字符“S”
' ' == strmap[11][21]?
把二维字符数组strmap第11行第21列的元素设为字符“S”
把Player对象p的方法sgetxy,参数有枚举XY的值X返回的引用设为字符指针cp与二维字符数组strmap第0行第0列的地址之间的元素个数除以22的结果
把Player对象p的方法sgetxy,参数有枚举XY的值Y返回的引用设为字符指针cp与二维字符数组strmap第0行第0列的地址之间的元素个数模上22的结果
执行Player对象p的方法printmap,参数有二维字符数组strmap
把ch设为你输入的字符
清空缓冲区
把解引用的cp设为空格
'a' == ch?
执行Player对象p的方法left_move,参数有字符指针cp的地址
定义整型i为0
i < 22?
执行trigger对象数组t的第i项的方法check,参数有Player对象p的方法sgetxy,参数有枚举XY的值X返回的引用,Player对象p的方法sgetxy,参数有枚举XY的值Y返回的引用,二维字符数组strmap的地址,二维字符数组strmapr的地址,Player对象p的引用,整型itrap的引用,字符指针cp的地址,字符ch,trigger对象数组t的地址和整型数组deadarr的第i项的元素的引用
i自增1
itrap > 0?
itrap自减1
!itrap?
把二维字符数组strmap的14行第5列的元素设为空格
把二维字符数组strmap第15行第5列的元素设为字符“X”
执行Player对象p的方法upOrDown,参数有字符指针cp的地址
执行Player对象p的方法shootmove,参数有二维字符数组strmap的地址,整型barri和整型ibsv的引用
执行Player对象p的方法rejump,参数有字符指针cp的地址
'X' == *cp?
执行Player对象p的方法gameover,参数有字符指针cp的地址,二维字符数组strmap的地址,二维字符数组strmapr的地址,对象trigger数组t的地址和整型数组deadarr的第i项的元素的引用
设布尔数组barr的第index项为0
ishoot > 0?
ishoot自减1
先清除s.txt这个文件的内容,再把fstream对象fs用写模式打开s.txt这个文件
往fstream对象fs输出ibsv加上字符“0”的ASCII码值的结果,并将结果以字符型输出
定义整型i为0
i < 3?
设字符串stra为整型数组deadarr的第barri项的元素转向字符串的结果
往fstream文件对象fs输出空格和字符串str
i自增1
释放fstream文件对象fs
把背景色设为黑色,前景色设为淡绿色
输出“恭喜你,你赢了,似了”,整型数组deadarr的第i项的元素和“次\​n”
释放fstream文件对象fs
'd' == ch?
执行Player对象p的方法right_move,参数有字符指针cp的地址
'w' == ch?
执行Player对象p的方法Djump,参数有字符指针cp的地址
'z' == ch?
执行Player对象p的方法shoot,参数有整型ishoot和字符指针cp的地址
'r' == ch?
执行Player对象p的方法reset,参数有字符指针cp的地址,二维字符数组strmap的地址,二维字符数组strmapr的地址,trigger对象数组t的地址和整型数组deadarr第i项的元素的引用
输出“\​033[31;1m请输入要删除的存档编号(输入错误就不删除存档)\​033[0m\​n\​n”
把ch设为你输入的字符
清空缓冲区
ch < '1' || ch > '3'?
输出“\​033[31;1m输入错误,不删除存档\​033[0m\​n\​n”
把ch设为你输入的字符
定义整型index为字符ch减去1再减去字符“0”的ASCII码值的结果
ibsv & (1 << index)?
把ibsv自减1按位左移index位的结果
释放fstream文件对象fs
先清除s.txt这个文件的内容,再把fstream对象fs用写模式打开s.txt这个文件
设整型数组deadarr的第index项为0
往fstream文件对象fs输出ibsv
定义整型i为0
i < 3?
往fstream文件对象fs输出空格和整型数组deadarr第i项的元素
输出“\​033[32m删除成功!\​033[0m\​n\​n”
刷新fstream文件对象fs
把ch设为你输入的字符
Game.cpp源文件里的printstart函数
结束
开始
输出“***** * * * *** * * * * *** *** *** ***** *** ***** * * ***** \​033[32;1m* * *** * *\​033[0m\​n”
输出“ * * * * * * ** * ** * * * * * * * * * * * * * \​033[32;1m * * * * *\​033[0m \​n”
输出“ * * * * ***** * * * * * * ***** * ** * * * * * * ***** ***** \​033[32;1m* ***\​033[0m \​n”
输出“ * * * * * * ** * ** * * * * * * * * * * * * * \​033[32;1m* *\​033[0m \​n”
输出“***** * * * * * * * * * * *** *** * *** * * * ***** \​033[32;1m***\​033[0m \​n”
Game.cpp源文件里的deadset函数
结束
开始
定义整型i为0
i < 3?
把解引用之后的整型数组指针deadarr的第i项设为从fstream文件对象fs中读取到的内容
刷新fstream文件对象fs
i自增1
Player.h头文件
结束
开始
防止头文件重复定义
导入io流
导入vector文件
导入trigger.h头文件
释放std作用域下的所有东西
定义宏JUMPHIGH为3
定义枚举XY,其中X为0,Y为1
定义结构体trir,有字符指针cp,有布尔值b,还有整型iy
定义类Player,并与类trigger作为友元,公开的有Player类的构造函数,printmap方法,Djump方法,left_move方法,left_move方法,right_move方法,sgetxy方法,upOrdown方法,gameover方法,reset方法,rejump方法,shoot方法和shootmove方法;私密的有整型ix,整型iy,整型ijh,整型ij,布尔值blr和里面的元素类型为结构体trir的vector容器v
Player.cpp源文件
结束
开始
导入io流
导入algorithm文件
导入cstring头文件
导入fstream文件
导入trigger.h头文件
导入Player.h头文件
导入Cmp.h头文件
释放std作用域下的所有东西
定义Player的构造函数
定义布尔型的MSB为假
定义布尔型的MSBa为假
定义布尔型的MSBb为假
定义布尔型的MSBc为假
定义布尔型的MSv为假
定义printmap方法
定义Djump方法
定义left_move方法
定义right_move方法
定义sgetxy方法
定义upOrDown方法
定义gameover方法
定义reset方法
定义rejump方法
定义shoot方法
定义shootmove方法
Player的构造函数
结束
开始
把ij设为2
把ijh设为0
把blr设为1
Player类里的printmap方法
结束
开始
定义整型i为0
定义整型ia为0
i < 22?
设ia为0
ia < 22?
前面输出“\​033[”,如果“G”为二维字符数组strmap第i行第ia列的元素,那么中间就输出“32;1m”,否则如果“X”为二维字符数组strmap第i行第ia列的元素,那么中间就输出“31;1m”,否则如果“#”为二维字符数组strmap第i行第ia列的元素,那么如果trigger类里的MSB不为0,那么中间就输出“32;1m”,否则中间就输出“31;1m”,如果“#”不为二维字符数组strmap第i行第ia列的元素,那么如果“S”为二维字符数组strmap第i行第ia列的元素,那么如果trigger类里的MSB为0,或者ia为21,那么中间就输出“33m”,否则中间就输出“33;1m”,如果“S”不为二维字符数组strmap第i行第ia列的元素,那么如果“@”为二维字符数组strmap第i行第ia列的元素,那么中间就输出“33m”,否则中间就输出“0m”,后面则输出二维字符数组strmap第i行第ia列的元素和“\​033[0m”
ia自增1
输出“|\​n”
i自0增1
输出“----------------------@\​n”
Player类里的Djump方法
break
break
break
否(break)
否(break)
否(break)
结束
开始
2 == ij?
21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]?
设ij为1
设ijh为宏JUMPHIGH的值
21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]?
设ij为0
设ijh为宏JUMPHIGH的值
1 == ij?
21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]?
设ij为2
21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]?
设ij为0
设ijh为宏JUMPHIGH的值
执行Player类里的rejump函数,参数有二级字符指针cpp
21 == ix || '*' == (*cpp)[22] || '#' == (*cpp)[22]?
设ij为1
设ijh为宏JUMPHIGH的值
21 != ix && '*' != (*cpp)[22] && '#' != (*cpp)[22]?
设ij为0
Player类里的left_move方法
结束
开始
iy && '*' != *(*cpp - 1) && '#' != *(*cpp - 1)?
把解引用的cpp向左移动一位
设blr为假
Player类里的right_move方法
结束
开始
21 != iy && '*' != *(*cpp + 1) && '#' != *(*cpp + 1)?
把解引用的cpp向右移动一位
设blr为真
Player类里的sgetxy方法
如果xymode不为0,那么就返回类Player里边的iy的引用,否则就返回类Player里边的ix的引用
结束
开始
Player类里的upOrdown方法
结束
开始
ijh > 0 && ix && '*' != (*cpp)[-22] && '#' != (*cpp)[-22]?
ijh自减1
把解引用的cpp向左移动22位
'*' != (*cpp)[22] && '#' != (*cpp)[22] && (!ix || '*' == (*cpp)[-22] || '#' == (*cpp)[-22])?
设ijh为0
把解引用的cpp向右移动22位
'*' != (*cpp)[22] && '#' != (*cpp)[22] && 21 != ix?
把解引用的cpp向右移动22位
Player类里的gameover方法
清屏
清屏
结束
开始
定义字符ch为0
' ' == (*strmap)[9][20]?
把解引用的二维字符数组指针strmap的第9行第20列的元素设为字符“S”
执行Player类里的printmap函数,参数有解引用的二维字符数组指针strmap
输出“\​033[31;1m游戏结束 请按r键重新开始\​033[0m\​n”
ch - 'r'?
把ch设为你输入的字符
清空缓冲区
ch - 'r'?
执行Player类里的printmap函数,参数有解引用的二维字符数组指针strmap
输出“\​033[31;1m游戏结束 请按r键重新开始\​033[0m\​n”
执行Player类里的reset函数,参数有二级字符指针cpp,二维字符数组指针strmap,二维字符数组指针strmapr,trigger对象数组t的地址tarr和整型引用idead
Player类里的reset方法
结束
开始
idead自增1
trigger::MSv?
把解引用的cpp设为解引用的二维字符数组指针strmap第9行第20列的元素的地址
设ix为9
设iy为20
trigger::MSv?
设trigger类里边的MSB为假
设MSBa为假
设MSBb为假
设MSBc为假
设blr为真
定义整型i为0
把解引用的二维字符数组指针strmapr里的元素全身是你都拷贝到解引用的二维字符数组指针strmap的里面去
i < 22?
把解引用的trigger对象数组指针tarr的第i项的成员变量MBt设为假
i自增1
清除vector容器v里的所有元素
执行Player里的rejump函数,参数有二级字符指针cpp
把解引用的cpp设为解引用的二维字符数组指针strmap第21行第0列的元素的地址
设ix为21
设iy为0
Player类里的rejump方法
结束
开始
21 == ix || '*' == (*cpp)[22]?
设ij为2
Player类里的shoot方法
结束
开始
(!i) && (21 != iy && blr || iy && (!blr))?
往vector容器的尾端添加一个结构体trir,里面有二级字符指针cpp,布尔型blr和整型iy
设i为3
Player类里的shootmove方法
结束
开始
定义里面的元素类型为结构体trir的vector容器的迭代器it为vector容器v的起始迭代器
v.end() != it?
' ' == *it->cp || '@' == *it->cp?
把解引用的迭代器it指向的字符指针cp设为空格
'#' == *it->cp?
把trigger类里边的MSB设为真
&((*strmap)[9][20]) == it->cp?
把trigger类里边的MSv设为真
!(ibsv & (1 << barri))?
把ibsv自增1按位左移barri位的结果
'*' == *it->cp || '#' == *it->cp || (!it->iy && (!it->b)) || (21 == it->iy && it->b)?
把迭代器it指向的it设为-1
0 <= it->iy?
把it指向的cp自减1减去it指向的b乘2的积的差
把it指向的iy自减1减去it指向的b乘2的积的差
' ' == *it->cp || '@' == *it->cp?
把解引用的it指向的cp设为字符“@”
把it向右移动一位
对vector容器v里的所有元素进行排序,排序方法为按这些元素的iy的值进行升序排序
(!v.empty()) && 0 > v.begin()->iy?
删除vector容器v的头端元素
trigger.h头文件
结束
开始
导入io流
导入Player.h头文件
释放std作用域下的所有东西
定义类trigger,并与类Player作为友元,私有的有整型MISX,整型MISY,整型MIEX,整型MIEY,整型Mtrig,布尔型MBt,静态布尔型MSB,静态布尔型MSBa,静态布尔型MSBb,静态布尔型MSBc和静态布尔型MSv;公开的有trigger类的有参构造函数,用来初始化私有的整型MISX,整型MISY,整型MIEX,整型MIEY和整型Mtrig,其中,布尔型MBt初始化为假,check方法和saveset方法
trigger.cpp源文件
结束
开始
导入io流
导入string文件
导入Player.h头文件
释放std作用域下的所有东西
定义布尔型的trigger类里的MSB为假
定义布尔型的trigger类里的MSBa为假
定义布尔型的trigger类里的MSBb为假
定义布尔型的trigger类里的MSBc为假
定义布尔型的trigger类里的MSv为假
定义check方法
定义saveset方法
trigger类里的check方法
break
否(break)
否(break)
break
break
否(break)
否(break)
否(break)
否(break)
break
否(break)
否(break)
否(break)
break
break
break
break
break
否(break)
否(break)
break
否(break)
break
break
否(break)
否(break)
结束
开始
定义整型i为0
MISX <= ix && ix <= MIEX && MISY <= iy && iy <= MIEY && (Mtrig - 4 && Mtrig - 8 && Mtrig - 16 && Mtrig - 18 ? (!MBt) : 1)?
设MBt为真
0 == Mtrig?
把解引用的strmap第21行第3列的元素设为字符“X”
执行Player对象引用p的方法gameover,参数有二级字符指针cpp,二维字符数组指针strmap,二维字符数组指针strmapr,trigger对象数组指针tarr和整型引用idead
1 == Mtrig?
设i为16
i < 21?
把解引用的strmap的第i行第6列的元素设为字符“X”
i自增1
2 == Mtrig?
设i为18
i < 22?
'X' == (*strmap)[i][13]?
把解引用的strmap的第i行第13列的元素设为空格
i自增1
把解引用的strmap的第i行第13列的元素设为字符“X”
3 == Mtrig?
设i为MISX
i <= MIEX?
定义ia为MISY
ia <= MISY?
把解引用的strmap的第i行第13列的元素设为字符“X”
ia自增1
i自增1
执行Player对象引用p的方法gameover,参数有二级字符指针cpp,二维字符数组指针strmap,二维字符数组指针strmapr,trigger对象数组指针tarr和整型引用idead
4 == Mtrig?
'z' == ch?
把解引用的strmap的第13行第19列的元素设为字符“L”
把解引用的strmap的第13行第20列的元素设为字符“O”
把解引用的strmap的第13行第21列的元素设为字符“L”
执行Player对象引用p的方法gameover,参数有二级字符指针cpp,二维字符数组指针strmap,二维字符数组指针strmapr,trigger对象数组指针tarr和整型引用idead
6 == Mtrig?
!MSB?
设i为0
i < 10?
把解引用的strmap的第i行第15列的元素设为字符“X”
i自增1
7 == Mtrig?
设i为8
i < 10?
把解引用的strmap的第i行第10列的元素设为字符“*”
把解引用的strmap的第i行第14列的元素设为字符“*”
i自增1
i < 15?
8 == Mtrig?
i自增1
(!MSBa) && '*' == (*cpp)[22]?
9 == Mtrig?
设MSBa为真
设i为6
i < 9?
把解引用的strmap的第10行第i列的元素设为字符“*”
i自增1
10 == Mtrig?
设i为1
i < 4?
把解引用的strmap的第4行第i列的元素设为字符“*”
i自增1
11 == Mtrig?
把string字符串str初始化成“LOL LOL”
定义字符指针cpa为解引用的strmap的第11行第2列的元素地址
定义字符指针cpb为string字符串第0项的地址
设i为0
i < 7?
把解引用的cpa设为解引用的cpb
i自增1
把cpa向右移动一位
把cpb向右移动一位
设MSBb为真
12 == Mtrig?
把解引用的strmap的第11行第0列的元素设为字符“G”
把解引用的strmap的第14行第0列的元素设为空格
13 == Mtrig?
把解引用的strmap的第11行第0列的元素设为字符“G”
把解引用的strmap的第13行第0列的元素设为空格
把解引用的strmap的第13行第5列的元素设为字符“X”
把解引用的strmap的第13行第2列的元素设为空格
把解引用的strmap的第15行第5列的元素设为字符“*”
设i为16
i < 21?
把解引用的strmap的第i行第0列的元素设为字符“L”
把解引用的strmap的第i行第1列的元素设为字符“O”
把解引用的strmap的第i行第2列的元素设为字符“L”
i自增1
14 == Mtrig?
设ii为10
15 == Mtrig?
设MSBc为真
设i为10
i < 13?
把解引用的strmap的第14行第i列的元素设为字符“X”
i自增1
把解引用的strmap的第13行第100列的元素设为字符“*”
设i为0
i < 11?
把解引用的strmap的第10行第i列的元素设为字符“*”
i自增1
*cpp == &((*strmap)[14][12])?
执行Player对象引用p的方法gameover,参数有二级字符指针cpp,二维字符数组指针strmap,二维字符数组指针strmapr,trigger对象数组指针tarr和整型引用idead
'*' == (*cpp)[22]?
16 == Mtrig?
MSBc?
把解引用的strmap的第14行第10列的元素设为空格
把解引用的strmap的第14行第11列的元素设为空格
把解引用的解引用的cpp加上22的结果设为字符“X”
17 == Mtrig?
把解引用的strmap的第21行第13列的元素设为字符“X”
18 == Mtrig?
MSBb?
把解引用的cpp设为解引用的strmap的第11行第7列的元素地址
把解引用的strmap的第11行第8列的元素设为字符“*”
设MSBb为假
rigger类里的saveset方法
结束
开始
设MSv为b
Cmp.h头文件
结束
开始
防止头文件重复定义
导入vector文件
导入Player.h头文件
释放std作用域下的所有东西
定义函数对象cmp,公开的有重载运算符()
Cmp.cpp源文件
结束
开始
导入vector文件
导入Cmp.h头文件
导入Player.h头文件
释放std作用域下的所有东西
定义重载运算符()
重载运算符()
返回结构体t的成员变量iy小于结构体ta的成员变量iy的布尔值
结束
开始

程序游玩的效果

iwanna

下一篇博客要说的东西

C++打小怪游戏

C++版iwanna1

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息安全工程师(40)防火墙技术应用

一、防火墙的基本概念 防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量&#xff0c;以保护网络免受未经授权的访问和攻击。它可以是装配多张网卡的通用计算机&#xff0c;也可能是通用的物理设备。防火墙通过在网络之间设置访问控制策略&#xff0c;对进出的通信流…

Window系统编程 - 文件操作

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天主要介绍使用windows系统编程操作读写文件 文件 CreateFile()函数讲解 介绍:该函数用于打开文件或者I/O流设备&#xff0c;文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、mailslot 和…

Java Collection接口

01 Collection体系 1.Collection是父接口&#xff0c;List和Set是子接口&#xff0c;用于实现父接口。接口不能被实例化&#xff0c;因为接口没有构造方法。 2.第三行和第四行的class就是这些接口的实现类。 02 Collection父接口 1.特点&#xff1a;代表一组任意类型的对象、…

【计算机毕设】springboot-家具销售电商平台(附源码)

摘 要 Abstracts 目 录 第1章 绪论 1.1课题背景 1.2研究意义 1.3研究内容 第2章 技术介绍 2 2.1相关技术 3 2.2 Java技术 3 2.3 MySQL数据库 4 2.4 Tomcat介绍 4 2.5 Spring Boot框架 5 第3章 需求分析 5 3.1需求分析概述 6 3.2可行性分析 6 3.2.1经济可行性 6 3.2.2技…

十二、血条UI

一、制作血条UI 注&#xff1a;一般不用Slider制作血条&#xff1b;而是用两个Image制作&#xff0c;选择为填充 使用Slider滑动条制作UI 人物血条&#xff1a;背景深绿色&#xff1b;滑条浅绿色 在场景中的画布选择为OverLay 敌人血条&#xff1a; 在预制体里面制作&#x…

VUE 开发——Vue学习(二)

一、watch侦听器 作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 简单写法 <div id"app"><textarea v-model"words"></textarea></div><script>const app new Vue({el:#app,data: {words: },watch…

ai论文写作软件哪个好?分享5款ai论文题目生成器

在当前的学术研究和写作领域&#xff0c;AI论文写作软件已经成为提高效率和质量的重要工具。根据多个来源的评测和推荐&#xff0c;以下是五款值得推荐的AI论文写作软件&#xff0c;其中特别推荐千笔-AIPassPaper。 1. 千笔-AIPassPaper 千笔-AIPassPaper是一款基于深度学习和…

扭蛋机深受年轻人欢迎,线上扭蛋机小程序发展优势

近几年&#xff0c;扭蛋机一直处于高速发展阶段&#xff0c;市场发展前景逐渐扩大。扭蛋机的玩法可以激发年轻人追求刺激的心理&#xff0c;从而提高扭蛋机的吸引力。在扭蛋中带来的不确定性和刺激性&#xff0c;能够提高消费者的体验感&#xff0c;满足消费者的娱乐休闲需求&a…

Qt开发环境的搭建

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Qt开发环境的搭建 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. Qt开发工具概述 Qt…

【分立元件】案例:电感焊盘部分发黑原因有什么?

大家都知道正常的一体成型电感的PIN脚外观如下图所示: 其中要求对电极的验收要求可能有几个关注点,如:电极偏位、划痕、凸起、生锈、孔洞等。 但是在工作过程中,前段时间,有同事咨询电感来料焊盘存在发黑现象的原因是什么。 对于这方面其实我也不懂,但通…

通信工程学习:什么是RIP路由信息协议

RIP&#xff1a;路由信息协议 RIP&#xff08;Routing Information Protocol&#xff09;路由信息协议是一种基于距离矢量算法的内部网关协议&#xff08;IGP&#xff09;&#xff0c;主要用于在自治系统&#xff08;AS&#xff09;内部进行路由信息的交换和传播。以下是关于RI…

Base64字符串转图片在线工具

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 Base64编码&#xff0c;作为一种将二进制数据转换为文本格式的方法&#xff0c;其核心在于利用64个可打印字符来表征任意的二进制信息。这一编码方式的出现&#…

一些零散的和编译相关的语法/flash-attn涉及语法扫盲

#pragma once&#xff1a;一个编译指令&#xff0c;用于防止头文件被多次包含。当编译器遇到#pragma once时&#xff0c;它会确保该头文件在一个编译单元&#xff08;一个.cpp文件及其包含的所有文件&#xff09;中只会被包含一次。即使该文件被间接包含多次&#xff0c;编译器…

用于图像识别的判别图正则化技术

本文所涉及所有资源均在 传知代码平台 可获取。 目录 论文概述 图正则化技术及其优点 算法流程 在标准BLS中嵌入判别图正则化的方法 模型整体架构 代码复现 图拉普拉斯矩阵的构建——generateLmatrix.py文件 复现模型整体架构——bls2deep_graph.py文件 顶层文件——GBLS.py文件…

Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND

Case1 : 表没有主键 show create table xxx desc table Case2 : 表是MEMORY表 show create table xxx desc table https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-features-memory.html

KDTS 实现MySQL至KingbaseES迁移实践

此文章以linux环境实践&#xff0c;KingbaseES一下使用KES代替。 KDTS KDTS工具安装KES时会一起安装&#xff0c;一般存在目录为&#xff1a;ClientTools目录下guitools文件夹中 启动 进入KDTS-WEB下bin目录&#xff0c;执行sh文件 cd /opt/Kingbase/ES/V8/ClientTools/guit…

70.【C语言】动态内存管理(重点)(3)

本文为数据结构打下基础 备注:数据结构需要掌握指针,结构体和动态内存管理 承接69.【C语言】动态内存管理(重点)(2)文章 目录 4.calloc函数 cplusplus网的翻译 提炼要点 使用 5.recalloc函数 使用说明 作用 调整内存空间的几种情况 1.原有空间之后有足够大的空间 …

自动猫砂盆是养猫新型智商税吗?测评2024年热门款智能猫砂盆分享

铲屎官们只要一察觉到猫主子拉屎&#xff0c;就要马上去铲掉&#xff0c;这不仅是为了猫砂盆中其他干净的猫砂&#xff0c;更是为了防止猫屎残留发臭&#xff0c;特别是便便这种东西&#xff0c;一旦放久了就很招虫子&#xff0c;家里出现这些虫子又要大扫除消杀&#xff0c;特…

使用Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时&#xff0c;接口的请求方法有get,post等&#xff1b;get和post请求传参&#xff0c;和获取接口响应数据的方法&#xff1b; 请求接口为Post时&#xff0c;传参方法 我们在使用python中requests库做接口测试时&#xff0c;在做post接口测试…

论文精读:基于概率教师学习的跨域自适应目标检测(ICML2022)

原文标题&#xff1a;Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题&#xff1a;基于概率教师学习的域自适应目标检测 代码地址&#xff1a; GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…