当前位置: 首页 > news >正文

_C++精灵库算法可视化程序

旁白:在肖申克的高墙之内,这群囚犯用“约瑟夫游戏”找到了一丝丝生活的乐趣。而安迪和瑞德,也在这游戏中,找到了彼此间的默契与友谊。这就是肖申克的故事,一个关于希望与自由的故事。

程序所有代码如下:

// 约瑟夫问题模拟算法可视化程序,本程序需C++精灵库V1.0.3。 // 下面拟有10个人,报到3的出队,索引从0开始,从它开始报数。 #include "sprites.h" //包含C++精灵库 using namespace std; Screen screen; int main(){ //主功能块 screen.bgcolor("black"); //bubble0.png是红色的圆圈,上面有0,这些圆圈是用另一个程序生成的,如果没有,请自行生成 //bubble1.png是橙色的圆圈,上面有1,其它依次类推,圆形颜色的色相相隔36。 vector<string>shapes = {"res/bubble0.png","res/bubble1.png","res/bubble2.png","res/bubble3.png","res/bubble4.png","res/bubble5.png","res/bubble6.png","res/bubble7.png","res/bubble8.png","res/bubble9.png"}; vector<Sprite*> persons; for(int i=0;i<10;i++){ //生成10个角色,用不同颜色的圆圈代替 Sprite* j = new Sprite(shapes[i]); j->setheading(360-i*36+90); j->penup(); j->fd(160);j->setflag("alive");j->seth(0); persons.push_back(j); } Sprite bao{"blank"}; //在最上面写报数的数字的1,2,3的 bao.penup().sety(330).color("red"); Sprite pen{"blank"}; //无造型的角色,用于报告谁出队了 pen.penup().sety(250).color("magenta"); //新建箭头造型的角色ptr Sprite ptr{"res/pointer_blue.png"}; //在中间的蓝色的指示器,谁报到3了,就会出队,先把角色变成透明效果来表示 ptr.seth(90); //初始方向指向0号角色(红色的上面写0的圆圈) bool diedflag[10]={false}; //描述是否出队的布尔数组 int baoshu= 0; //报数器 int cntdied = 0; //统计出队的人数 vector<int> seq; //保存出队顺序 while(cntdied<10){ for(int i=0;i<10;i++){ if(diedflag[i]==true)continue; //此人已死,下一个 baoshu++; ptr.setheading(360-i*36+90); bao.cleartxts(1).write(to_string(baoshu),40); //最上面显示1,2,3 delay(1); if(baoshu==3){ seq.push_back(i); persons[i]->setalpha(50); //透明,表示已死 string s = "编号" + to_string(i) +"已死"; pen.cleartxts(1).write(s,33).wait(1); diedflag[i]=true; baoshu=0; cntdied++; //死亡人数增加1 pen.cleartxts(1); } } } bao.cleartxts(1).write("出队序列",40); //最终出队顺序是2 5 8 1 6 0 7 4 9 3 ,下面可视化的显示这个序列 for(int i=0;i<10;i++){ persons[seq[i]]->stamp(); //在原位置盖图章 persons[seq[i]]->setalpha(255); //恢复alpha通道为255 persons[seq[i]]->go(-200 + i*50,250); //定位到上面去排成一行,从而可视化显示出队序列 } screen.done(); //完成了 return 0; //返回0 }

http://www.jsqmd.com/news/583893/

相关文章:

  • 外企转华为的技术人转型观察与建议
  • Kubernetes网络策略深度解析
  • AI工具实战--VibeCoding开发流程:写代码前的9步准备
  • 本地LLM部署工具(写给小白的LLM工具选型系列:第一篇)
  • CFPS 数据清洗教程:带你轻松上手
  • AI工具实战-- 普通人自学AI必知的30个工具清单
  • 4类URPC2021水下目标检测数据集该数据集拥有7600张图片,拥有4个类别,分别是[‘holothurian‘, ‘echinus‘, ‘starfish‘, ‘scallop‘]数据集是VO
  • ### 3. 工业级鲁棒性:动态参数控制
  • OpenClaw长任务省token方案:Qwen3-32B私有镜像实测对比
  • 深耕公考七载,以师者匠心筑就学员上岸之路
  • STM32三区存储优化LoRa OTA升级速度
  • 10款高效答辩AI工具(含爱毕业aibiye)与模板使用体验分享
  • 基于YOLOV8的狗狗前端检测识别成品项目开箱即用,开箱即用,开箱即用该项目具有如下5个优势:① 包含狗狗检测数据集(mtdata_dog_cls11)共884张图片,11种类别,已按照7:2:
  • AI工具实战--MCP是什么:让AI真正连接外部世界的协议
  • 2025-2026年美国投资移民中介推荐:五大口碑服务评测评价领先 - 品牌推荐
  • WIZ820ioInterface:面向工业场景的W5500嵌入式以太网驱动HAL
  • Slope Trick 学习笔记
  • 深圳万象天地街区美陈:如何从空间装饰升级为体验引擎?肆墨设计
  • 基于51单片机的锅炉温控(PT100、热电偶)探秘
  • 针对双SMC控制的四轮转向轨迹跟踪模型优化与效果评估研究
  • 【图像加密】基于 AES算法的图像位平面加密解密算法附Matlab代码
  • 【算法日记】Day 4 一维动态规划基础(按字符DP)
  • 技术创业中的产品迭代:从内核开发到用户中心
  • 创意随笔:智能转录便携终端
  • 告别图层导出烦恼:智能高效的Photoshop批量处理工具如何提升设计效率
  • 折腾光纤模型的手记
  • 智慧城市落地难?这4个痛点,90%项目都踩过
  • 基于[ClaudeCode]源码魔改重建深度集成微信消息桥使微信用户可直接与 Claude 对话,Claude 也可主动向微信用户发送文字、图片和文件
  • MS5540C传感器驱动开发:类SPI协议与校准算法详解
  • LeetCode hot 100 (8-11,自用2026.04.03)