接上篇,wx:help-assignment
③cmd_console_tools.h/.cpp用之 诺塔下发 ,不允许修改,也不需要提交,检查作业时,会将原始的.h/.cpp放入后编译,出错则不得分
④其余6个文件需要提交,网页上只有一个文件有分数,该分数即本次作业的总分,本题得分按实现功能总体评价而不是按各文件分别给分(例:magic_ball_base.cpp提交后编译报错,则本题总得分为0分)
注:6个文件必须全部提交,否则编译错误会导致得分为0 !!!
⑤函数的命名、函数的功能划分等,没有绝对的对错与硬性要求,各人自己在作业的实现过程中慢慢领悟,不会因为分解不是最佳、函数命名不好而扣分
[子题目划分:]
为了降低难度,整个程序拆分为若干小题,完成每个小题都能够取得相应的分数
1.内部数组,生成初始状态,寻找是否有初始可消除项
2.内部数组,消除初始可消除项后非0项下落并用0填充
3.内部数组,消除初始可消除项后查找消除提示
4.nn的框架(无分隔线),显示初始状态
5.nn的框架(有分隔线),显示初始状态
6.nn的框架(有分隔线),显示初始状态及初始可消除项
7.nn的框架(有分隔线),消除初始可消除项后显示消除提示
8.cmd图形界面完整版(有分隔线,鼠标移动时显示坐标,右键退出)
9.cmd图形界面完整版
0.退出[请选择:]
子题目1:生成初始状态并找出初始可消除项
键盘输入行列(要处理输入错误,下同)
显示初始数组,行号从A开始,列号从1开始,值1-9分别表示9种颜色的球
按回车键查找初始可消除项,即初始生成后某行/某列有三个以上连续相同值,用不同颜色标记出来,如果没有,则提示找不到
子题目2:消除初始可消除项、非0项下落、用0填充、再在0位填充新值在子题目1完成的基础上进行,0代表空位非零项下落、填充0、新值填充0位置分步进行
完成后,需要再次查找是否有初始可消除项,如有,则反复进行
子题目3:初始可消除项消除完成后,查找消除提示项(即相邻的可互换项)●在子题目2完成的基础上进行
为了减轻负担,给出部分提示供参考
消除提示项的查找是本小题也是本大作业的核心难点(有更好方法的同学可以忽略此提示)子题目4:在伪图形界面下画出初始状态彩球之间无分隔线
子题目5:在伪图形界面下画出初始状态
彩球之间有分隔线
希望和子题目4共用画框架的参数,是否有分隔线通过参数决定(后续同)
子题目6:在伪图形界面下画出初始状态并找出初始可消除项●在子题目4完成的基础上进行彩球之间无分隔线
子题目7:在伪图形界面下画出初始状态并找出初始可消除项,消除后显示消除提示在子题目5完成的基础上进行彩球之间有分隔线
子题目8:在伪图形界面下支持鼠标,能正确判断出鼠标的行列位置●在子题目7完成的基础上进行彩球之间有分隔线
鼠标只能选择可消除项(选到不可消除项要给出提示)支持鼠标右键结束
子题目9:伪图形界面完整版在子题目8完成的基础上进行能用鼠标完成一次完整的游戏
能用鼠标选择可消除项,再按一次则取消选择能交换可消除项并进行消除、下落、填充能计算分数
能判断游戏是否结束
本次90-b2-demo尚未完成,会尽快补发
wx:help-assignment
wx:help-assignment
wx:help-assignment
【函数的分解与使用限制:]
1、继续进行函数的分解和调用关系的训练,但无硬性要求
2、参数解决差异时,仍然不建议用if-else/switch-case等简单方法分解,例如:画7-9列的框线时,不能采用下面这种形式,而应该用循环打印整个框线,根据循环值决定框线的长短:同样,是否有分隔线也希望通过参数设置而不是写两个函数来完成
3、共用函数中,均允许调用其它函数,基本原则就是高效完成程序,减少冗余代码
4、建议:尽量保证每个函数(包括main)不要超过50行(不强求)
5、函数分解合理规范的,可以给予最多1分的总分额外加分,本加分项不需要额外提交程序,通过
检查源程序后给出相应得分(本加分项为老师/助教主观判定,无固定标准,也不接受差异申诉)【无强制要求的内容:]
1、内部数组的数据类型、具体值等无强制要求(例:用char数组,既可以’0’-'9’,也可以是0-9)
2、字体、字号、颜色等无强制要求(但需要保证在1920x1080分辨率下显示正常)
3、画边框的顺序无强制要求
4、边框的线型无强制要求(四选一),但必须是中文边框线(“23242-900102-W1302.综合题-附件四
种线型的中文制表符框架,cpp”给出了四种线型,任选一种即可)
5、各种提示信息、状态栏的内容等无强制要求
6、被标识项、边框、选中色块的反显等的颜色无强制要求
7、出错时的各种提示无强制要求,清晰明了即可
8、本题是人工判题,不是自动判题(即:不必太在意细节处理)【编译器要求:】
仅VS2022通过即可,要做到“0errors,0 warnings"
【显示要求:]
1、必须是旧版控制台
2、在1920*1080的屏幕下(FHD)显示正常