这个作业属于哪个课程 | <班级的链接> |
---|---|
这个作业要求在哪里 | <作业要求的链接> |
个人学号 | <102299217> |
结对成员学号 | <102299144> |
GitHub 仓库地址 | <GitHub仓库地址> |
一、PSP表格
PSP任务 | 估计时间(分钟) | 实际时间(分钟) |
---|---|---|
Planning(计划) | 30 | 20 |
Analysis(需求分析) | 60 | 50 |
Learning (学习) | 60 | 60 |
Design(具体设计) | 60 | 30 |
Development(开发) | 60 | 60 |
Coding(具体编码) | 60 | 60 |
Test(测试) | 30 | 30 |
Postmortem & Process Improvement Plan(事后总结) | 10 | 10 |
Total(总计) | 370 | 320 |
二、原型展示
原型链接 原型采用Axure制作并上传到墨刀
三、算法与技术
我们此次作业用的是Python,前后端链接用的flask,因为比较简单,上手快一点
并发性算法
# 创建一个空列表用于保存生成的九个数独谜题 sudokus = [] # 定义生成数独的函数 def generate_sudoku(): sudoku = generate() blank = copy.deepcopy(sudoku) remove(blank, 50) return (sudoku, blank) # 创建九个线程,每个线程生成一个数独谜题并将其保存到列表中 threads = [] for _ in range(9): thread = threading.Thread(target=lambda: sudokus.append(generate_sudoku())) threads.append(thread) thread.start() for thread in threads: thread.join()
实现并发求解:
第一次作业生成挖空数独时,我们是先生成完整数独后,保存了完整的数独,再进行挖空,所以此次作业只需要把之前并发生成数独的答案取出来即可,主要的问题在前端上面。
我们使用了Promise和async/await来实现并发地填入数独答案。
四、结对照片
五、个人总结
第二次参与结对编程作业,此次作业有了上次的基础进展起来快了很多,学习了很多JS开发的知识和团队合作的能力,很多不会的地方通过询问同学和ai的帮助也顺利解决了。