2023软件工程第三次(结对)作业_20230928

这个作业属于哪个课程<班级的链接>
这个作业要求在哪里<作业要求的链接>
个人学号<102299144>
结对成员学号<102299217>
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

三、原型展示

[原型链接](https://modao.cc/proto/dpPdVlKHs1qr5lHyzUnK0K/sharing?view_mode=read_only #数独原型-分享)
原型采用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

五、结对照片

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值