结对作业——九宫格
题目简介
项目需求描述,主要指应实现的主要功能::在9×9格的大九宫格中有9个3×3格的小九宫格,并提供一定数量的数字。根据这些数字,利用逻辑和推理,在其它的空格上填入1到9的数字。每个数字在每个小九宫格内只能出现一次。
结对分工情况
在我们这个小组中,我负责写代码,整理实验报告,他负责测试代码
代码地址
https://github.com/dingcongcong/test/blob/master/jiugongge
结对实践过程
程序调用readASolution()方法来读取一个九宫格的解决方案,并且返回一个表示九宫网格的二维数组。isValid(grid)方法检查每行是否包含从1到9的数字,如果grid[i]行的确包含从1到9的数,那么调用is1To9方法来检测它是否包括从1到9的数字。
为了检测grid中每个小的3x3的盒子中是否包含从1到9的数字,将一个盒子放到一个一维数组中,然后调用is1To9方法来检测它是否包括从1到9的数字。随着这种观察的深入,可以很容易的确定盒子中的所有元素。假设grid[r][c]是3x3盒子的起始方格。这个盒子中的元素可以使用嵌套循环来实现,如:
// Get all cells in a 3-by-3 box starting at grid[r][c]
for (int row = r; row < r+3; row++)
for (int column = c; column < c+3; column++)
// grid[row][co]umn] is in the box
所有小盒子中的数字都集中在一个一维数组list中,然后调用is1To9(list)检测list是否包含从1到9的数字
问题及心得
1.这次课程设计从选题到编码到调试运行,都遇到了提多的困难。与以往的不大相同,这次没有老师辅导,主要是通过自己完成得出结论,并写出课程设计报告的。
2.我觉得这次课程设计是很宝贵的,主要是在最试验的过程中能自己查找资料解决各种问题,享受的是这个过程。万事开头难,头开好了,接下来遇到的问题只要耐心分析,认真思考,带着问题寻找解决的方法,很多困难就会迎刃而解。
3.面对设计中出现的异常情况,不应恐惧,要善于运用网络和书籍着手解决问题。盲目的实验是不可行的,要在设计之前理出设计思维,有条理的进行,尽量减少实验操作的盲目而提高程序效率,详细记录设计中出现的现象并加以思考。