說起這個程式的設計源頭是這樣子的.
有一天趙老師跑來說.....
問: 手機程式你會寫嗎?
答: 理論上是 JAVA 應該可以.
問: 利用相機和指南針計算應該不難吧?
答: 聽起來比手機控制家電還簡單, 不過詳細要看過你要的功能才知道.
問: 沒問題, 這有8個PPT 你看一下.
答: 好的, 有空我看看
...... 過了幾天
趙: 你已經看過我們的機密了何時動工?
答: 啥米? 那也叫機密? 寫這個程式你準備花多少錢?
趙: XK
答: 你簡直是搶人.. 去搶銀行比較快, 更何況我連怎麼支援相機和指南針都沒開始寫.....
就這樣子我上了賊船... 而且到現在還沒收到錢 (哭) 因為他說, 當然是連九星等等. 一起寫完才算錢...... 我倒....
-----------------
開始寫這個程式時, 我連 Liner Layout 都不知道是什麼, 只好上網去買這本書. 寫的還不錯....
http://www.kingstone.com.tw/book/book_page.asp?LID=se008&kmcode=2014480826355&Actid=wise&partner=
事實上, 這本書的全部內容在網路上都有(那買來做什麼? 我是買了才發現網路上都有 >"<)
說起 JAVA, 事實上不難. 可是 ANDRID 上的 JAVA... 那還真的不太一樣.
舉個例子. 在風水判斷上共有 24 個方位, 所以得到角度後要判斷在那個方位.
這很簡單吧. 用 Switch 一次搞定就好了.
不幸的是, Switch 在 JAVA 上只能是整數, 或 CHAR. 就是不能是字串.
所以遇到 "五鬼方" 這種判斷.... 你只能用 IF.... 所以在我的程式碼上充滿了...
int mountindex=0;
float kkk = event.values[0];
// 24山有二個度數夾角, 因此也不能用 SWITCH... 看!
或者....
// 看. 嗎的全篇都是 IF 實在寫不下去了. JAVA 什麼爛規定. 字串不能 SWITCH if(housegua.equals("乾")){
t1 = e1[0][0];t2 = e1[1][0];t3 = e1[2][0];t4 = e1[3][0];t5 = e1[4][0];t6 = e1[5][0];t7 = e1[6][0];t8 = e1[7][0];
}
說到陣列, 就另人更火大了.
命卦當中, 男命和女命不同, 男命的循環是
"乾坤巽震坤坎離艮兌"
而女命是
"離坎坤震巽艮乾坎艮"
以民國11年為例子. 男命是乾, 女命是離, 12 年男為坤, 女為坎.
我們總不能得到角度後再去算個加減乘除, 之後再比對 24 山吧. 就直接取回陣列值. 100%萬無一失, 也不用計算的要死.
所以我就寫了.
String[] malegua = {"乾","坤","巽","震","坤","坎","離","艮","兌"};
String[] femalegua = {"離","坎'","坤","震","巽","艮","乾","坎","艮"};
String[][] mingua = new String[93][2];
int y=0;
for (int i=0;i<=93;i++){
mingua[i][0]=malegua[y];
mingua[i][1]=femalegua[y];
if(y==8){
y=0;
}else{
y++;
}
}
一個簡單的迴圈. 什麼東西都沒有, ECLIPSE 也沒報錯, 傳到AVD 上執行 100% 會說
"對不起"
"XXX 異常中止, 請再試一次"
我在靠北邊走咧..... 這種小迴圈的邏輯如果還會出錯, 就不要寫程式了. 於是無論怎麼除錯. 就是100%會當.
用了2小時在這個簡單迴圈上, 最後一氣之下, 要不然我寫入資料庫. 然後從資料庫取回算了.
接著往窗外一看, 那支米格魯還在無辜的望著我說 "
我今天的晚餐沒有吃"....
我笑著說, 那好吧... 不要拿別人的錯誤來懲罰自己, 更不要因為這樣連屋外的狗都沒飯吃了.
程式你賤, 我比你更賤....打開 PHP, 寫個小程式. 我 "
直 接 硬 上 " XD
String[][] mingua= {{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"},{"坤","巽"},{"坎","艮"},{"離","乾"},{"艮","坎"},{"兌","艮"},{"乾","離"},{"坤","坎"},{"巽","坤"},{"震","震"}};
反正 1922 年的人沒幾個人還活著. 即使活著也不指望會用這個程式. 哈哈!
之後就依樣畫葫蘆囉.
String[][] sitdirection ={
{"壬","丙","坎"},
{"子","午","坎"},
{"癸","丁","坎"},
{"丑","未","艮"},
{"艮","坤","艮"},
{"寅","申","艮"},
{"甲","庚","震"},
{"卯","酉","震"},
{"乙","辛","震"},
{"辰","戌","巽"},
{"巽","乾","巽"},
{"巳","亥","巽"},
{"丙","壬","離"},
{"午","子","離"},
{"丁","癸","離"},
{"未","丑","坤"},
{"坤","艮","坤"},
{"申","寅","坤"},
{"庚","甲","兌"},
{"酉","卯","兌"},
{"辛","乙","兌"},
{"戌","辰","乾"},
{"乾","巽","乾"},
{"亥","已","乾"}
};
原本是用掌訣可以算的東西. 我也懶的寫了. 全部查表算了 哈哈!
說到這個, 我寫這個程式還真的快氣瘋了. 無論多簡單的程式邏輯都可能莫名奇妙當掉. 或者根本沒有執行. 舉 SPINNER 為例子好了. 初始後化, 肯定就會先執行一次. 為了達成使用者變更後就SHOW 出變更計算結果. 所以理論當然會將界面寫進去.
但是使用者進入畫面後, 肯定預設值不可能是使用者所要的結果.
結論當然是第一次執行時, 不要顯示. 從第2次開始才執行.
然後我們就使用 boolen 值來判斷是否第二次執行. 結果另人抓狂的是. 無論怎麼設. 結果都是 TRUE!
多年來陸陸續續從ASM, BASIC C PERL PHP JAVA JAVASCRIPT. 一路寫下來從沒遇到這種"
詭異" 的"
靈異"現像. 終於在我退出程式設計前遇到"
鬼" 了.
此等心境, 唯著文一篇, 以記念過去2週所死掉的腦細胞....