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

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

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

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

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

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

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

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

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

          lai54678540@126.com  回復(fù)  更多評論
            
          # re: 數(shù)獨游戲小程序 2010-08-28 18:03 | tgh
          &#49324
            回復(fù)  更多評論
            
          主站蜘蛛池模板: 东港市| 大埔县| 阿克苏市| 教育| 静乐县| 宜丰县| 阳谷县| 廉江市| 上林县| 平度市| 驻马店市| 浏阳市| 大港区| 平果县| 额济纳旗| 府谷县| 望城县| 湄潭县| 常山县| 蒲江县| 兴城市| 建宁县| 洪湖市| 新丰县| 荃湾区| 敦化市| 揭东县| 楚雄市| 思茅市| 安康市| 华亭县| 昂仁县| 牟定县| 应城市| 兴山县| 安图县| 尚义县| 贵南县| 南江县| 怀远县| 柳河县|