隨筆-46  評論-64  文章-2  trackbacks-0
          數獨游戲小程序

          數獨的游戲規則很簡單:在九個九宮格里,填入1到9的數字,讓每個數字在每個行、列及九宮格里都 只出現一次就可以過關了!?雖然游戲的規則十分簡單,但很多人在沒有計算機輔助時,常常會不小心造成違規狀況。

          下面是我做的一個數獨小程序 1.0 版本,目前功能如下:

          選擇外觀;
          數獨自動出題;
          數獨自動解題;
          游戲計時功能;
          開啟解答輔助功能,出錯提示;
          開啟解答輔助功能,輔助線;

          程序基于Java Swing,運行需要JRE1.6以上版本。
          ?
          可雙擊執行的JAR包,點此下載。(Napkin的LookAndFeel蠻好玩,我就一起弄在里面了)
          程序的源碼,點此下載。(有興趣修改源碼的朋友可以DIY出自己喜歡的版本。)

          或者也可以從 http://groups.google.com/group/afun?這個group的files里面找到上面的兩個文件。

          對數獨有興趣的朋友可以玩一下這個小工具,歡迎留下寶貴意見,讓這個小程序更完善。 可能我會另開一篇日志說一下Source Code相關的東西。
          ?
          Figure: 填值的出錯提示
          Figure: 填值的出錯提示2
          演示如何使用輔助線功能:
          首先選中Enable help system選項, 然后選擇按鈕 1 ,這時候關于 1 的輔助線開啟,把不能填1的單元格都畫了線,畫線規則是,1所在的行畫桃紅色橫線,1所在的列畫橙色豎線,1所在的九宮格畫粉色X線,如下圖,這時候我們發現,在第五行只有第二列這一單元格格沒有被畫上線,那么這一個肯定只能填上1。
          這時候我們就可以把1填入到 第五行第二列,這時輔助線會自動更新。如下圖,此時沒有可以確定填入1的單元格了,我們可以換一個數看輔助線。
          ?OK,我們選擇3,這時候輔助線如下,我們發現第五行第四格可以確定填入3這個值。
          填入3之后的圖如下:
          解答成功之后,會彈出恭喜解答成功的對話框。
          自動解答功能可能出現的異常情況
          當題目比較復雜的時候,可能會彈出如下的提示異常的對話框,這是因為解答數獨用了遞歸的解法,難度大時遞歸深度很深,導致棧溢出,可以通過運行JVM時指定線程棧大小的方法來解決這個問題。
          posted on 2008-08-02 17:32 jht 閱讀(2715) 評論(4)  編輯  收藏 所屬分類: J2SE數獨程序

          評論:
          # re: 數獨游戲小程序 2008-08-02 19:24 | 黑蝙蝠
          樓主強悍,貌似把swing已經用到了隨心所欲的地步了~ 頂起!  回復  更多評論
            
          # re: 數獨游戲小程序 2008-08-02 20:25 | way
          swing還有人在用?  回復  更多評論
            
          # re: 數獨游戲小程序 2008-11-14 17:52 | cuso4321
          樓主能不能分享下自動出題那部分的算法?

          先謝過樓主了,如果可以請樓主給我發郵件行不?

          lai54678540@126.com  回復  更多評論
            
          # re: 數獨游戲小程序 2010-08-28 18:03 | tgh
          &#49324
            回復  更多評論
            
          主站蜘蛛池模板: 织金县| 平潭县| 宁化县| 沂南县| 阳谷县| 浦北县| 涞源县| 金堂县| 鹤峰县| 休宁县| 三明市| 潼关县| 获嘉县| 宜兰县| 巴塘县| 穆棱市| 吴堡县| 岢岚县| 濮阳县| 阿坝县| 维西| 定陶县| 三穗县| 沧州市| 阿城市| 上蔡县| 望城县| 麻城市| 柳江县| 浦北县| 宜章县| 兴仁县| 永顺县| 沐川县| 平阴县| 仙游县| 陇南市| 元谋县| 邹平县| 香河县| 屏山县|