顯示具有 個人作品 標籤的文章。 顯示所有文章
顯示具有 個人作品 標籤的文章。 顯示所有文章

2008年9月23日 星期二

就是愛計較 (Java版)

記得在幾個月前,曾經也動手要寫一個記帳的程式,來記錄每一天的開銷。但寫了一小部份後,開始對於該如何存放資料感到煩惱,感覺用一般的檔案讀寫,不是很符合程式的需求,因為隨時都可能須要對過去的資料做查詢、刪除及一些處理,用資料庫系統來管理會比較適合。但說到資料庫,若要求每個使用者都自己先建好一個可用的資料庫又不太可能,所以這個程式就開始停擺沒寫了。

前些日子,看到昔日的強者同學剛好也寫了一個記帳程式,發現他是用一種嵌入式的資料庫SQLite,也就是可以和所開發的程式包在一起,程式啟動時同時也啟動資料庫,感覺蠻適合用來開發程式的。但由於SQLite是用C寫的,所以便開始想找找看有沒有用Java寫的嵌入式資料庫系統,很幸運的被我找到了,原來在Java 6本身就已經包含一個名為Java DB(Apache Derby)的資料庫系統,所以就開始著手找一些相關的文件,學學如何使用Java DB。

既然資料庫的問題解決了,所以便打算重新繼續開發記帳程式,在寫程式之前,有先參考了這位強者同學寫的記帳軟體,因為我使用者介面的設計能力真的很差,所以介面就有點模仿他的,但功能還是沒有他寫的完整就是了,大家可以到下面網址使用他的軟體。

豬頭記帳


接下來就來簡介一下自己寫的程式,當然是不能和強者同學寫的相提並論,我只是單純練習用的。

程式下載區

程式外觀主要有四個分頁

  • 新增記錄 - 可用來新增每一筆的收入與支出,類別的部分可以自行修改,下面會列出最近十筆的輸入資料。

  • 資料統計 - 列出本日、本月、本年以及全部的收入支出總額,另外以圓餅圖來顯示所有支出中,各類別所佔的比例。


  • 檢視/刪除 - 可以用來查詢任何一天的記錄,並刪除該筆記錄。



  • 類別設定 - 可以修改、新增、刪除類別與子類別項目,若修改或刪除的類別或子類別包含已存在的記錄,則該筆記錄的類別或子類別項目會變成不分類。




第一次寫程式用到資料庫系統,雖然研究所時修過資料庫系統,但真的都忘的差不多了。害我趕緊把書給挖了出來,但由於我把系統寫的很單純,所以也沒有用到什麼複雜的查詢。資料庫系統真是一門很深的學問,我還要再多學學才行。

在寫這一個程式時,漸漸發覺當程式功能愈多的時候,還是多人一起開發會比較輕鬆吧,雖說這個程式沒有很大,但因為很多東西都第一次碰,所以寫到最後,開始有點討厭程式。其實本來預期的功能應該不只這些,只是有點累了,就先寫到這樣吧!

2008年9月8日 星期一

樂透機(Java版)

最近怎麼開始都在寫簡單的程式了呢?主要是因為恰巧有這個需求,所以就順手來寫了一個。像若是單純只寫文字介面的話,只要短短幾行就寫好了。不過,我想或許其它人也有這個需求,所以就把它寫成視窗程式,有興趣的可以下載使用看看。

程式下載區 (若不能執行表示你的系統未安裝JRE 6)

IE好像下載時會將以.zip儲存,若要正確執行,請將附檔名改成.jar。


例:希望從1到1000中,隨機產生5組號碼,且這5組號碼可以重複。

執行畫面如下:




所以,功能很單純。就是使用者可以自己設定一個範圍,並選擇想要產生幾組數字,按下好運氣,結果會產生在下面。像大樂透的玩法是1到49任選六個號碼,所以就可以在程式中輸到1和49,選擇6組數字,千萬別勾選可重複號碼喔!

p.s. 要是真的那麼好中就好了,所以千萬別這樣就簽下去了,除非你是抱著做公益的心態去簽^__^

2008年8月21日 星期四

單字王(Java版)

自從高中畢業後,就發現自己的英文程度每況愈下。除了文法忘光光外,這幾年在大學或是研究所,增加的英文字彙就僅止於電腦領域。所以,就突發奇想,寫了一個小程式來幫助自己多記憶一些單字。

這次寫的這一個程式(單字王)相當簡單,所以整個程式連一行註解都沒寫,但我知道這是個很不好的習慣啦。

程式下載區 (若不能執行表示你的系統未安裝JRE 6)

程式的功能很單純,主要有三個:

  • 新增:將想背的單字與中文解釋加到單字庫裡。
  • 刪除:可以將單字從單字庫移除。
  • 隨堂考:可隨機從單字庫挑出單字來測驗。

程式執行畫面如下:


註:一開始我有先在單字庫加上一個scarf的字彙在單字庫裡,使用者可以自行刪除。由於隨堂考是採取隨機選取,所以若單字庫的字彙很少的話,很容易會出現複的單字出現。相信隨著時間,大家的單字庫也會滿滿滿的。

2008年7月23日 星期三

俄羅斯方塊(Java版)

隔了好長的一段時間,終於又寫好了一個Java的小遊戲。這次要挑戰的是俄羅斯方塊。
這次的程式設計技巧上是有用到貼圖(Sprite)的概念,好像很多遊戲都是用貼圖,像是瑪莉兄弟之類的。

程式下載區 (若不能執行表示你的系統未安裝JRE 6)

本來是想另外畫方塊的圖來表示各種圖形,但由於懶惰的關係,所以都是用內建的畫圖函式畫的。

下圖就是遊戲執行的畫面,畫面陽春了點,不過真的可以玩喔。



操作方法: 左、右鍵控制方向,上鍵旋轉方塊、下鍵急速下墜,以及空白鍵可以暫停。

遊戲規則:每一萬分後會升一級,速度會加快。十萬分就全破了。


自己寫遊戲的好處除了是練功外,另外一個就是規則都可以自己訂喔,呵~~
美中不足的地方就是遊戲沒加上音效,不過我覺得大家開電腦多半都會開音樂來聽~~

2008年4月21日 星期一

貪食蛇新功能

貪食蛇又有新功能了,為了讓遊戲更刺激,因此多加了排行榜的功能,程式會把你每次的分數記錄下來,然後會列出目前分數最高的前十名,大家如果有興趣的話,可以來挑戰一下,成為武林盟主吧~~~



此外,感謝小書書的協助,讓版本一下子從1.1跳到2.0

2008年4月12日 星期六

貪食蛇(Java版)

先釋出最原始版的貪食蛇

程式下載區




下面的畫面就可以看到很陽春了,紅色代表一條可愛蛇的小頭,身體則是黑色的。藍色方形代表是食物,所以當你可愛的小蛇肚子餓的時候,你就要用上下左右鍵帶著小蛇去吃美食。由於小蛇消化不良,只進不出,所以每吃一個美食就會變大,所以要注意他的飲食,不然變太大後,容易撞到自己,就死掉了~~~
PS. 空白鍵可以暫停。

2008年3月16日 星期日

小丸子之暗棋連線 (Java版)

花了將近兩個星期終於完成了。由於對網路程式的部份比較不熟悉,一度覺得應該寫不出來了,好在,終於完成了,雖然還有很多地方不是寫的很完美。

程式下載區

為了讓遊戲畫面生動一點,所以就把我最喜歡的小丸子給加了進來。遊戲一進入時,就可以為自己選一個角色。最後那一張帥哥當然不是我,是我可愛的學弟,測試員獨享的權利。選完角色後,可以從遊戲選單選擇要當Server還是Client。



當兩方都連線時,即可看見對方所選的角色,如下圖。按兩下可以翻開棋子,移動或吃棋子只要先點一下自己再點目的地即可。最下面會顯示所吃掉對方的棋子。




每次寫程式都有個大毛病,就是邊寫邊想邊改。明明知道這是很沒效率的,應該要一開始先拿紙筆好好規畫後,再動筆。所以,每次看到自己寫的程式碼,真的是難看死了。

上次的踩地雷和這次的暗棋都是自己胡亂寫的,接下來就要開始好好研讀之前買的兩本遊戲設計的書,看可不可以寫出漂亮的程式囉~~~

2008年3月4日 星期二

象棋繪圖

寫完踩地雷後,接著決定來寫一下連線版的暗棋,順便練習一下網路程式。而連線版的另一個原因就要AI太難了,若要做單機版,勢必要和電腦下棋,感覺就是會很複雜。所以凡事還是從簡單的地方著手。

雖然自己沒有什麼美術天份,但象棋的圖案夠簡單的了,所以這次決定自己來畫圖。
不過,在畫的過程就被發現有Bug,原來是紅色的棋子,士、車、馬都有人字旁,象->相。
我全畫錯了。

2008年3月1日 星期六

踩地雷(Java版)

花了幾天的時間,終於把踩地雷寫好了。
一直覺得我的程式能力很弱,所以說想找些題目來寫寫。踩地雷感覺高中生就寫的出來的東西,我當然也要來寫一下,所以決定了這個題目。

整個程式是用Java寫的,主要是因為我比較會的視窗程式也只有Java而已。
程式下載區

我的寫法是先寫好地圖產生器,接著設定GUI,最後再來做事件處理。其實GUI應該要最後才寫的,但我比較喜歡先看到樣子。

整個程式寫完,花我最長時間的地方也是GUI的部分,LayoutManager好難用, 好在有發現用null可以自己設定絕對位置,才讓我能順利的排版每個物件。其次就是左鍵加右鍵的功能,凹下去的功能我是沒做啦,但是有做到能翻開周圍不是地雷的地方。

程式執行的畫面如下



比較有問題的是左鍵加右鍵一起按時,沒辦法像windows判斷那麼快,要先按左鍵(右鍵)再點右鍵(左鍵),然後一起放。按太快有時會偵測不到。還有重新開始的時候,畫面重設部份會有展開的感覺,無法瞬間換圖,但我同學都說這是特效,也不錯。

最後,感謝大鳥測試員~~~