全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1541
推到 Plurk!
推到 Facebook!

請問一個程式問題

尚未結案
lousyqq
一般會員


發表:1
回覆:1
積分:0
註冊:2005-04-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-06 02:15:31 IP:218.171.xxx.xxx 未訂閱
如題... 若程式中有一個介面Robot內含三個方法cook(),watch(),play() 而有三個class dog cat mouse分別去實作它 dog可以煮飯, cat可以煮麵, mouse可以煮牛排, cat跟mouse會隨機決定他在cook, watch, 或是play,     可能的情況如下:               1. 當dog在煮飯的時候, 如果cat在看dog, 那麼mouse就要去玩.       2. 當mouse跟cat在玩的時候, dog也會跑去玩.       3. 當cat在看dog, mouse在看cat的時候, dog會看mouse    像這種讓程式隨機決定運作的方式 不曉得是該用何種函數去執行? 我查了一下網路,發現有隨機決定亂數的函數random 但這好像只限於數字上的亂數, 而我要的是將牠們在做什麼用文字的敘述來表達 而且用數字來截取的話,不曉得怎樣選取method() 不知道是不是我的方向錯誤,要解這題根本是要用別的函數?    請各位大大指點一下迷津^^
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-06 10:00:58 IP:61.64.xxx.xxx 未訂閱
可以用Hashtable來存放這些關聯: ex: java.util.Hashtable actionTable=new java.util.Hashtable(); actionTable.put("1","cook"); actionTable.put("2","watch"); actionTable.put("3","play"); 之後再以亂數找出對映的函數來執行. 至於以名稱來執行函數,請參考reflection機制 參考: http://java.sun.com/developer/technicalArticles/ALT/Reflection/ "Invoking Methods by Name"一節 畢竟,java1.4.x還沒有類似C 的函數指標的機制(1.5的話,不才因為業務之故,沒有在用)] 發表人 - neoart 於 2005/04/06 10:07:35
lousyqq
一般會員


發表:1
回覆:1
積分:0
註冊:2005-04-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-06 20:20:22 IP:59.113.xxx.xxx 未訂閱
引言: 可以用Hashtable來存放這些關聯: ex: java.util.Hashtable actionTable=new java.util.Hashtable(); actionTable.put("1","cook"); actionTable.put("2","watch"); actionTable.put("3","play"); 之後再以亂數找出對映的函數來執行. 至於以名稱來執行函數,請參考reflection機制 參考: http://java.sun.com/developer/technicalArticles/ALT/Reflection/ "Invoking Methods by Name"一節 畢竟,java1.4.x還沒有類似C 的函數指標的機制(1.5的話,不才因為業務之故,沒有在用)] 發表人 - neoart 於 2005/04/06 10:07:35
用亂數來找出對應的函數執行,這行我不大曉得 我試過很多次,像直接在每個實作的類別main()中直接用Math.random() 或者是在main()中直接建立物件,好比是dog i=new dog; 而讓i.((int)Math.random()*3)去呼叫 均是不行的 要不就是直接跑出亂數的數字 ex:002.213之類的..無法顯示我所要的函數 難道他還要在另外寫個method才能去接收actionTable.put()ㄇ? 謝謝提供參考^^
系統時間:2024-04-27 21:44:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!