关于数独游戏的实现(二)

接上一版

4)设计实现过程。

整个程序实现大体是使用c语言完成的,一共设计了8个函数。分别有判错,处理-c命令,处理-s命令,DFS搜索等等类别。

5)程序改进。

之前的想法是裸爆搜,写完之后发现真的是太慢了,跑10000组用例就需要4s钟。后来 改进了算法之后,100w也能够在2s左右跑完。下面展示 性能分析图。



前后 两次对比可以发现,性能有些变化。下面这个是单独的对函数和变量的测试,createJGG是调用最多的函数。


6)代码说明。

1>define.h展示

写项目之前要提前设计好整个程序的框架,在这个头文件里我提前定义好了所有的函数名以及它们的用途。


所有函数的功能和用途都以注释的形式写好,方便大家理解和阅读。

2>主函数

主函数比较简洁明了,因为大部分函数都已经成块,只要在主函数里面调用就好了。


然后一些小判断,加上-c,-s处理了。



-c就是组合数变换,-s就是dfs爆搜。简单明了,效率还行。生成100w需要2s,解100w4,5min钟。

 PSP;

 

PSP2.1

Personal Software Process Stages

预估耗时(min)

实际耗时(min)

Planning

计划

30

25

Estimate

估计这个任务需要多少时间

1200

1400

Development

开发

600

750

Analysis

需求分析(包括学习新技术)

120

100

Design Spec

生成设计文档

30

20

Design Review

设计复审(和同事审核设计文档)

10

15

Coding Standard

代码规范(为目前的开发制定合适的规范)

10

20

Design

具体设计

30

40

Coding

具体编码

120

240

Code Review

代码复审

30

20

Test

测试(自我测试,修改代码,提交修改)

120

60

Reporting

报告

30

30

Test Report

测试报告

10

10

Size Measurement

计算工作量

10

10

Postmortem & Process Improvement Plan

事后总结,并提出过程改进计划

30

30

 

合计

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值