在周六下午,开始着手准备数独这个项目。按老师的要求,先要把VS安装好。但是这个没想到也成了一个麻烦事。屡次安装不成功,包括在线安装,在极速之星下了安装包也不顶用。同学那拷过来的镜像也是失败。
这也是我一直不用visual studio的原因吧!安装麻烦,卸载也不干净。多次尝试之后,最后是在同学的帮助下,将自己的C盘中的visual studio的文件删除了,然后将成功安装了visual studio的同学电脑那将这个文件拷贝过来了,然后终于安装成功了。
然后开始着手写程序了。首先是语言的选择,我学过一点C语言,以及python。然后也自己将java的环境配好了,不过只是写过一个“hello, world!”程序。看过C#的介绍,打算这次就使用C#了。感觉逼自己多学一门语言是一件好事。
但毕竟是第一次使用面向对象的语言编程。(python那个啊,自己写过的python的程序不算是面向对象的,更像是面向过程)结构感觉跟java相近,但是语言风格接近C。
不知道面向对象是怎么样的,但是感觉一个数独矩阵是一个类,里面应该有判断方法。于是我开始写judge方法。
按我的思路是给定一个矩阵(二维数组),判断是否满足数独的规则。一开始最简单的实现方法就是暴力嘛。逐个比较,发现相同则判错,全部比较完未发现错误则判对。但是这种思路时间复杂度是O(n*n)的,于是选择另辟一个数组储存出现的数字,以空间换时间,比较9个数时间复杂度是O(n);但是数独需要比较横排,竖排以及宫格。时间上也不是很长,但是不太好用代码实现。
现在的思路是每次取出需要判断的9个数,传出来,判断方法只判断这9个数。则需要另外设计一个方法,取名叫get方法吧!功能是生成sample数组,数组内是需要比较的9个数。
这就是周六下午的全部工作了。为什么周一才写呢?周日去了大观园啊!