2011年6月23日 星期四

Android手機程式自學方案-番外篇之來喝「爪哇咖啡」玩數獨

上次的數獨程式(偽數獨)原來是錯的,真正數獨的規則:在九個九宮格裡,填入1到9的數字,讓每個數字在每個行、列及九宮格裡都只出現一次,也就是說向下圖所示:只要將此規則將9X9方格內填滿數字即可,所以上次的程式必須重寫(泣T.T)

所以要以這規則用JAVA實現,一開始以為很簡單卻搞了三、四天,不是數字重複,要不就是RUN很久迴圈跳不出來,就算跑出來了小九宮格裡的數字又重複了~~
終於今天把他搞定了~~
原來還是要用簡單的想法就好,有時想的太複雜反而不會成功,下面是執行的結果,速度相當快,而且相當亂,又能符合規則
run:
==================
8|1|7|5|9|3|6|4|2|
5|9|3|6|4|2|8|1|7|
6|4|2|8|1|7|5|9|3|
9|7|6|4|3|8|1|2|5|
4|3|8|1|2|5|9|7|6|
1|2|5|9|7|6|4|3|8|
3|6|1|2|8|9|7|5|4|
2|8|9|7|5|4|3|6|1|
7|5|4|3|6|1|2|8|9|
==================
8|1|7|  |  |3|6|  |2|
5|  |  |6|  |  |  |  |  |
  |  |  |  |  |7|5|  |  |
  |  |6|  |3|8|  |2|  |
  |  |  |  |2|  |9|7|6|
1|2|  |9|  |6|4|3|8|
  |  |  |  |8|9|  |  |  |
  |  |9|  |5|  |  |6|1|
7|  |4|  |6|1|  |  |  |
==================
成功建置 (總時間:0 秒)


程式部份寫法如上(只有宣告部份).....................
下次將它轉換至Android吧~~~加油!!!

2011年6月20日 星期一

Android手機程式自學方案-番外篇之來喝「爪哇咖啡」

此為番外篇~~因為Android也是用JAVA寫的,所以目前都是先用JAVA練習後,再將程式轉成Android,之前看到一個「河洛之數」的題目,所以拿來發揚光大一下.......

河洛之數的規則是這樣:
數字範圍為1~9且為3*3的數字矩陣,其縱向、橫向、對角線之3個數字總和皆為15,每次執行之矩陣排列皆不相同。

例如:
6  1  8
3  5  7
4  9  2

這算是一個還滿簡單的程式,所以我將它放大成 9 X 9,其縱向、橫向數字總和皆為45,且數字不能重複,結果如下:

=====================================================
6 8 3 5 9 4 1 7 2
8 1 4 3 2 5 7 6 9
5 7 6 1 4 9 3 2 8
1 6 5 4 7 2 8 9 3
2 5 7 8 6 3 9 1 4
7 3 9 2 8 1 6 4 5
9 2 8 7 5 6 4 3 1
3 4 2 9 1 7 5 8 6
4 9 1 6 3 8 2 5 7
=====================================================
9 3 5 2 4 6 1 8 7
7 1 4 8 5 9 2 3 6
6 9 8 5 3 4 7 2 1
5 8 1 9 7 3 4 6 2
1 6 3 4 2 8 9 7 5
3 5 2 6 1 7 8 9 4
2 4 6 7 9 1 3 5 8
8 7 9 1 6 2 5 4 3
4 2 7 3 8 5 6 1 9
=====================================================



雖然判斷式寫的很長,不過速度上還蠻快的,呈現效果就像「數獨」一樣,下次將將它套用在Android上,改裝成「數獨遊戲」。

2011年6月19日 星期日

Android手機程式自學方案-03

上次寫了一個計算BMI值的程式,應該算是在做數學運算與型態轉換的練習。
接著來做做陣列吧~~~寫一個樂透程式

主要注意的是:
1. 數字必須是亂數產生
2. 數字範圍 1~49  (這是廢話嗎!!)
3. 數字不能重複

第一與第二個問題是:使用亂數產生命令..Math.random()產生0~1的亂數
要產生範圍值則: Math.random()*(max-min)+min,所以要產生1~49的亂數,Math.random()*(49-1)+1

後續的問題是,數字不能重複,這問題比較大,因為用純JAVA寫的話,如下:



不包含迴圈,只要五行就解決了,但是直接套用至Android上,卻發生亂數會重複的問題,問題出在哪???這個就有待之後探討~

所以要能夠達成亂數不重複,只好用暴力比對法了,一筆一筆比對,雖然會慢一點(感覺不出來),不過一樣可以達成目的,如下寫法:



所以樂透程式就這樣誕生了~~執行畫面如下:

2011年6月14日 星期二

Android手機程式自學方案-02

應該要改成「腦殘」的自學方案才對~~~

又花了近二個小時,終於完成BMI計算程式....................的畫面,沒錯只有畫面,還不會計算.....光是一個畫面就把我搞死了,原因是不習慣在上面直接編輯,後來找到一套編輯軟體,熟悉操作後,就改善許多了~~~下一步是......計算.......哈哈!好像以前剛學程式一樣.....寫些超簡單程式


這是在 Ubuntu Linux下完成的 畫面~~~(上面的真的只是畫面,不能計算)

2011-06-18開始撰寫程式碼~~~~~


OK~把程式碼寫進去啦~!JAVA變數宣告~搞不太清楚!!所以算出來的答案是錯的~
因為是用Integer所以沒有小數點

正確答案應該是 75/((180*180)/10000)=23.15
結果變成 75/((180*180)/10000) = ˙75/3 = 25

晚點搞清楚變數宣告吧~~!!!

2011-06-19..............更改程式碼





終於對了~~~!!!!!!

2011年6月11日 星期六

Android手機程式自學方案-01

在職進修的課程找不到,只好搞自學啦!!
只是自學能有多大的效果............啊知~就走一步算一步,等有在職進修課程再去上吧。

第一步當然樣先架構好開發Android程式的環境了
我用的作業系統是 Ubuntu Linux 10.04....(當然也可以選擇用Windows)

開發環境需要下列四項東西:
  • Java開發工具包(Java Development Kit, JDK)
  • Android 軟體開發工具包(software development kit, SDK)
  • Eclipse整合開發環境(Integrated Development Environment, IDE)
  • Eclipse專用之Android開發工具外掛(ADT Plugin for Eclipse)

下載 Android SDK

安裝 JDK..Java開發工具包(Java Development Kit, JDK)
用ubuntu Linux的好處是不用下載,直接用 套件管理程式 搜尋 JDK.....選 default-jdk 再套用即可安裝了~~!!!



再來安裝 Eclipse整合開發環境(Integrated Development Environment, IDE)
可以到Eclipse 官網下載最新版本 : http://www.eclipse.org/downloads/



用ubuntu Linux不用下載,直接用 套件管理程式 搜尋Eclipse.....選 Eclipse 再套用即可安裝了~~!!!不過Ubuntu提供的版本是3.5.2,官網是 3.6版。

安裝完後,就可以啟動 Eclipse



再來安裝 Eclipse專用之Android開發工具外掛(ADT Plugin for Eclipse) ,這可也還蠻簡單的。

只要在 Eclipse 的工具列 直接點選”Help”下拉式選單當中的”Install New Software”選項,當出現”Install”對話視窗時,請在”Work with”文字框中,鍵入 https://dl-ssl.google.com/android/eclipse/ (有錯誤時改成 http://dl-ssl.google.com/android/eclipse/ )網址,並按下”Add…”按鈕

當出現”Add Repository”對話視窗時,在”Name:”對話視窗中,輸入一個英文代號名稱。因為,這個名稱只是說明這個網址為何?所以,可以自由輸入一個英文代號名稱。輸入後,按下”OK”按鈕。

按下”Select All” 按鈕,以便選取所有ADT Plugin for Eclipse的相關工具,即可安裝!!!

剩下Android 軟體開發工具包(software development kit, SDK),最早之前下載的SDK,在Linux系統下解開壓縮檔 android-sdk-linux_X86 後 ,在文字模式或是終端機 進入剛剛解開的目錄裡的tools目錄,下android update sdk的指令: 如下

test@test-laptop:~/下載/android-sdk-linux_x86/tools$ ./android update sdk
既可安裝

下列我寫的第一支程式: 在手機畫面上秀 Android program test by Dino



搞了二、三個小時,重灌二次Ubuntu ,才完成這個程式,這就是自學的成果 (應該是後果~XD)
後面還有 XML、JAVA、資料庫......哩哩叩叩的東西一堆........真是自作孽啊~~