活動說明:
針對自己擅長的技能做一番練習,並把自己的練習過程貼上來(擅長繪圖的人就貼練習稿,擅長文章寫作的人就貼短文)並且註明是針對什麼目標在做練習。
練習目標:
解決
989 - Su Doku問題要點:
因為是有關自製遊戲的公會活動,所以找了一條有關遊戲的問題,簡單來說,就是數獨,
不過這問題有三個要留意的要點:
第一是這數獨並不是標準規格,它的大小可以是9*9、4*4和1*1,當然可填寫的數字在不同的大小亦有不同。
第二是這些數獨不一定只有一個答案,在這種情況下,就只需要顯示用字典排序裡的第一個答案,即是先比較第一格,顯示數字較小的答案,若果相同就比較第二格,如此類推。
第三是這些數獨不一定有答案,這時只需要顯示"NO SOLUTION"就可以。
解題方法:
由於原則上是不應該寫上成功解答的程式碼,所以這裡只是解說,
由於想不到什麼特殊的解法,所以我用到的搜索方法是Depth-First-Search,
先由小至大找哪個數字可以填進去,找到的話就先填進去,
之後就再繼續到下一格,若果任何一個數字都無法填進去,那麼就回溯到上一步,
最後有兩種可能性,一是填滿了所有空格,二是回溯到第一個空格,即是沒有答案。
以上是大致上的方法,由於格式的問題,讓我獲得到珍貴的Presentation error。