請問一個程式問題 |
尚未結案
|
lousyqq
一般會員 發表:1 回覆:1 積分:0 註冊:2005-04-06 發送簡訊給我 |
如題...
若程式中有一個介面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 發送簡訊給我 |
可以用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 發送簡訊給我 |
引言: 可以用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()ㄇ? 謝謝提供參考^^ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |