上次的數獨程式(偽數獨)原來是錯的,真正數獨的規則:在九個九宮格裡,填入1到9的數字,讓每個數字在每個行、列及九宮格裡都只出現一次,也就是說向下圖所示:只要將此規則將9X9方格內填滿數字即可,所以上次的程式必須重寫(泣T.T)
所以要以這規則用JAVA實現,一開始以為很簡單卻搞了三、四天,不是數字重複,要不就是RUN很久迴圈跳不出來,就算跑出來了小九宮格裡的數字又重複了~~
終於今天把他搞定了~~
原來還是要用簡單的想法就好,有時想的太複雜反而不會成功,下面是執行的結果,速度相當快,而且相當亂,又能符合規則
run:
==================
8|1|7|5|9|3|6|4|2|
5|9|3|6|4|2|8|1|7|
6|4|2|8|1|7|5|9|3|
9|7|6|4|3|8|1|2|5|
4|3|8|1|2|5|9|7|6|
1|2|5|9|7|6|4|3|8|
3|6|1|2|8|9|7|5|4|
2|8|9|7|5|4|3|6|1|
7|5|4|3|6|1|2|8|9|
==================
8|1|7| | |3|6| |2|
5| | |6| | | | | |
| | | | |7|5| | |
| |6| |3|8| |2| |
| | | |2| |9|7|6|
1|2| |9| |6|4|3|8|
| | | |8|9| | | |
| |9| |5| | |6|1|
7| |4| |6|1| | | |
==================
成功建置 (總時間:0 秒)
程式部份寫法如上(只有宣告部份).....................
下次將它轉換至Android吧~~~加油!!!
沒有留言:
張貼留言