25 3月 2010

[SudokuBoxer] wxPython 實作Sudoku GUI Game

前一陣子利用空閒時間練習了一下wxPython,順便寫了一個Sudoku的小遊戲,想說完成的話,可以給我媽玩一下。

目前的功能還很陽春,不過至少題目的難易度滿正確的,在產生正確的題目上費了不少功夫,曾經嘗試過連到某Sudoku網頁去解析題目網頁的html語法,然後再儲存到DB裡,可是這招實在是太sucks了,抓不到50題,就被擋IP了 XD (看來是sleep的間隔時間不夠長.... ) 後來還找了一些tool來產生題庫,但是效果都不盡理想,不是題目有問題,就是題目難易度不均。

後來終於找到一個 Sudoku 產生題庫的 tool,跟一個可以幫題目打分數的 tool。雙管其下的結果還算讓人滿意。


Sudoku Importer - 以挖洞法產生sudoku題庫,所以必須餵入題目挖洞的template
Sudoku Explainer - 一個強大的Java GUI Sudoku軟體,可以教你怎麼一步步解題,以及解題所需要的技巧,最重要的是可以餵給它題目,然後產生該sudoku的難度分數以及解題所需要的技巧。
改天再寫一篇介紹怎麼用這兩個 tool 吧。


SudokuBoxer遊戲畫面

SudokuBoxer是用wxPython實作的,可惜的就是執行檔大了一點, 壓縮完後竟然還要5MB,沒壓縮也要15MB,真是誇張。

這也是我第一次用wxPython,第一次自己動手用 gettext 作 Multi-Language,程式還有很多功能沒完成,不過應該是不會輕易當掉啦,呵。想說弄到一個段落就放上來Share給大家一下。Python上手後,真的是快速開發的好物啊!

可惜 wxPython(wxWidgets) 在繪圖上的功能過於陽春,連 Texture 之間的 Alpha Blending 功能都沒有,不過wxWidgets可以貼OpenGL的Canvas上去,應該可以補足這一塊,但還要花時間學OpenGL就是了,大學學過都還給老師了....