2023秋软工实践 第一次结对作业

这个作业属于哪个课程[班级的链接](https://bbs.csdn.net/forums/fzusdn-0831)
这个作业要求在哪里[作业要求的链接](https://bbs.csdn.net/topics/617255492)
个人学号<102299217>
结对成员学号<102299144>
GitHub 仓库地址<GitHub仓库地址>

一、需求分析

Need(需求):

并发生成数独:系统能够同时生成9个九宫格数独,以满足用户同时挑战多个数独的需求,提高游戏难度和效率。 保证数独可解性:系统确保生成的每个九宫格数独都可解,以保证用户能够在后续游戏中解决这些数独,展示他们的解谜技能。

Approach(做法):

并行生成独立数独页面: 9个9宫格数独并行生成,每个数独都可独立求解。

Benefit(好处):

九个九宫格数独共存,操作便捷。

Competition(竞争):

操作简单,界面简洁。

Delivery,推广

邀请身边喜欢数独的同学体验,请他们提供使用感受和建议。 不断更新和完善平台的功能和服务,提高用户体验和满意度,吸引更多的用户加入并留存。

二、PSP表格

PSP任务估计时间(分钟)实际时间(分钟)
Planning(计划)3020
Analysis(需求分析)6050
Learning (学习)200300
Design(具体设计)120150
Development(开发)200300
Coding(具体编码)300400
Test(测试)120150
Postmortem & Process Improvement Plan(事后总结)3030
Total(总计)10601400

三、原型展示

原型链接 原型采用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()

唯一解保证

def unique_solution(msg, blanks):
​
    msg_copy = [row[:] for row in msg]
​
    # 挖掉指定位置的数字
    for b in blanks:
        row = b // 9
        col = b % 9
        msg_copy[row][col] = 0
​
    # 使用回溯法求解谜题
    solutions = []
    solve(msg_copy, solutions)
​
    return len(solutions) == 1

五、结对照片

六、个人总结

第一次参与结对编程作业。这次经历不仅提高了我的编程技能,也让我对团队合作有了更深的理解。其他同学们和AI对我们的帮助帮助很大,没有他们我们可能都无法完成此次作业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值