【数独游戏】2023秋软工实践 第一次结对编程作业

这个作业属于哪个课程<班级链接>
这个作业要求在哪里<作业链接>
个人学号102101637
结对成员学号102101324
GitHub 仓库地址https://github.com/xinyang-Grind/Homework.git

老师学长学姐好~我是102101637施彭湃
我的队友是——超级无敌大帅哥江湖人称xyg——102101324陈昕杨

1.需求分析(NABCD模型)

a.Need 需求

用户需要同时生成九个数独谜题。
每个数独谜题应该是唯一的,不重复的。
用户希望通过并行处理提高数独生成的效率。

b.Approach 做法

实施一个多线程的解决方案,以便同时生成九个数独谜题。
使用线程池来管理线程,每个线程负责生成一个数独谜题。
确保每个数独谜题都是唯一的,没有重复。

c.Benifit 好处

提高数独生成的效率,因为可以并行生成多个谜题。
减少用户等待时间,快速生成多个数独。
通过并发生成,增加了程序的性能和响应能力。

d.Constraints 约束

数独谜题必须是有效的,符合数独规则。
确保多线程操作不会导致数据竞争或不一致。
可能需要处理线程同步和错误处理。

e.delivered 交付

生成的九个数独谜题以数组的形式提供给用户或其他模块。
提供一个可视化界面或输出选项,以便用户查看或使用这些数独谜题。
提供文档或用户指南,解释如何使用并行生成的数独谜题。
在这里插入图片描述

2.PSP表格

项目名称:数独
项目日期:完成9.28
开发人员:陈昕杨 施彭湃

阶段计划

阶段预估时间 (分钟)实际时间 (分钟)
计划50120(由于返工)
设计2020
设计复审00 (双方都非常满意)
代码规范检查60120
具体编码600840
测试报告6060
重构0(原本以为没有)600(最后发现理解错题意 爆改一晚上!!)

总结

总计预估时间 (分钟):790min
总计实际时间 (分钟):1760min(还是差很多的)

3.原型展示(墨刀链接)

https://modao.cc/proto/rwe5jGoQs10gflGyfPofz/sharing?view_mode=device&screen=rbpTpz7qhXmBfGEgK&canvasId=rcTptmPlTpz7vCUqsLo3I2 #结对编程-分享

  • 每一个格子可以输入一个数字
  • submit提交答案
  • reset代表清空答案回到原题
  • newgame代表重新生成一个题目

4.算法技术

  • 回溯算法:回溯是一种搜索算法,通常用于解决组合问题、排列问题和优化问题等。在生成数独谜题的上下文中,回溯算法用于递归地尝试不同的数字放置,直到找到合适的解或确定无解。
  • 多线程:程序使用Java的多线程机制来并行生成九个数独谜题。每个数独谜题的生成任务被分配给一个独立的线程,以提高生成效率。通过线程池(ExecutorService)来管理这些线程,可以充分利用多核处理器的性能。
  • 随机性:程序在填充数独谜题时使用了随机性。在每个空格尝试放置数字时,程序会随机选择一个候选数字,以增加数独谜题的多样性。
  • 数独规则验证:程序在尝试放置数字时会检查数独规则的有效性。这包括检查同一行、同一列和同一个3x3子网格中是否存在重复数字。如果放置数字后违反了数独规则,程序会进行回溯,撤销之前的选择。
  • 数据结构:程序使用多维数组来表示数独谜题。这些数组用于存储数独谜题的状态,填充的数字以及检查数独规则。
  • 总的来说,这段程序利用回溯算法、多线程、随机性和数独规则验证等技术来生成多个数独谜题,并通过合适的数据结构来管理和表示这些谜题。这些技术的组合使得程序能够高效地生成多个不同的数独谜题。

5.成果展示

mmexport1695911198210

6.一些“结对”photos

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.个人感想

这次真的是紧赶慢赶把作业做完了,原本以为已经把作业做完了,结果后面一天发现!题意完全理解错误,简直就是致命的打击,还有是在DDL之前顺利完工!这次也是学到了很多东西,如同vue组件的使用,前后端跨域问题,怎么响应后端等等…

以下是巴拉巴拉巴拉,一些对于前端开发的看法

前端开发是创建Web应用程序用户界面的领域,它涉及使用HTML、CSS和JavaScript等技术来构建网站和Web应用程序。在前端开发中,常常会遇到以下一些问题:

跨浏览器兼容性问题: 不同的Web浏览器对HTML、CSS和JavaScript的解释和渲染有所不同,因此开发者必须确保他们的网站在各种浏览器中正常工作。

响应式设计: 确保网站在不同设备和屏幕尺寸上都能够良好地显示是一个挑战。开发者需要使用响应式设计技术来适应不同的分辨率和设备类型。

性能优化: 提高网站的加载速度和性能是一个重要问题。这包括压缩和合并CSS和JavaScript文件、使用图像优化技术、以及减少不必要的网络请求等。

前端框架和库选择: 选择合适的前端框架(如React、Vue.js等)和库,以提高开发效率和代码质量,但也需要学习和掌握这些工具。

维护性: 随着项目的不断发展,前端代码可能会变得复杂。良好的代码组织和文档化是确保代码易于维护的关键。

单元测试和集成测试: 编写和运行前端代码的测试是确保代码质量的重要一环,但有时也会面临测试环境和工具的挑战。

版本控制和团队协作: 使用版本控制工具(如Git)来管理前端代码的变更,以及与团队成员协作解决问题和推进开发。

自己做了前端才知道,那些可以画出好看UI的人是多么厉害,光是9个数独怎么清楚地显示在一页就捣鼓了老半天!总的来说,收获满满,期待下次作业!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值