当前位置: 首页 > 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.cnnetsun.cn/news/1549471.html

相关文章:

  • C++变参模板与折叠表达式在可变参数函数中的现代实现
  • 【Python 3.14 JIT性能调优终极指南】:实测提升47.2%执行速度的7大关键配置项
  • 别再只调PID了!用STM32做智能加湿器,我这样设计温湿度控制逻辑更省电
  • MTK LK充电全流程解析:从低电检测到关机动画显示
  • STM32CubeIDE实战:LL库+DMA实现F4系列ADC多通道采样(附完整工程)
  • OpenClaw+Qwen3-VL:30B:个人智能助手快速搭建
  • 【系统架构设计师】2025下半年 · 系统架构设计师论文题目与考试分析
  • OpenClaw内容创作:Qwen3.5-4B-Claude批量生成技术博客
  • Qwen3-ASR-1.7B方言识别:区域语言支持方案
  • FlexASIO音频驱动实战:5个性能调优技巧解决延迟与稳定性难题
  • 3个核心价值:XianyuAutoAgent监控系统全解析
  • Power Automate Desktop实战:一键自动登录Chrome网站
  • JIT热启动延迟骤降92%的关键配置,Python 3.14生产环境调优必读,错过再等两年!
  • 别再用Eager Mode硬扛了!PyTorch 2.0的torch.compile实战:从ResNet到BERT,手把手教你榨干GPU性能
  • OpenClaw硬件加速方案:nanobot镜像启用CUDA提升推理速度
  • OpenClaw个人知识库:nanobot镜像自动整理Obsidian笔记
  • Pinecone vs Weaviate:哪个向量数据库更适合你的AI项目?(2024最新对比)
  • Java全栈开发面试实录:从基础到项目实战的深度解析
  • 如何用Python免费获取通达信股票数据:新手量化投资入门指南
  • 模型量化实践:OpenClaw+nanobot内存占用降低50%
  • 树莓派4B避坑实录:从Java内存不足到PyCharm+Miniconda3稳定部署(保姆级教程)
  • 企业网实战模拟:在eNSP中用单臂路由和三层交换,规划一个多部门隔离与互访的网络
  • 传音控股年营收656亿:净利26亿同比降53% 派发现金红利10亿
  • OpenClaw轻量化方案:nanobot镜像节省80%模型推理资源
  • 别再只用Dice Loss了!结合Focal Loss解决钢材缺陷分割中的小目标难题(附PyTorch代码)
  • OpenPLC Editor:重塑工业自动化编程的开源方案
  • 鸣潮工具箱终极指南:从卡顿到流畅的完整解决方案
  • 告别Halcon!用海康VisionMaster 4.4的MVD渲染控件,5分钟搞定C#视觉界面开发
  • Spring Boot + MyBatis 动态数据源路由:基于注解与AOP的实战指南
  • chromego 启动后设置全局代理的方法