2011-11-06 56 views
0

我的家庭作業是這樣的,如果需要更多的背景 - 我會解釋,但它是相當長的解釋,並提供網站上的文本文件,如果人們需要看他們:http://www.cis.upenn.edu/~cis110/hw/hw06/index.html通過文本文件搜索並隨機選擇?

現在我在第二步,堅持隨機選擇與寶物類相關的三個項目,檢查它們是否以「tc」開頭。我可以從monster.txt文件中提取寶物類,並且擁有怪物。這是我找到寶類方法:

public static void getTreasureClass(Monster monGet) 
    throws FileNotFoundException{ 
    Random rand = new Random(); 
    String tc=monGet.getTreasureClass(); 
    Scanner file=new Scanner(new File ("TreasureClassEx.txt")); 
    System.out.println(tc); 
    while(!file.next().equals(tc)){ 
     file.next(); 
     } 
    tc=file.next(); 
    if (tc.startsWith("tc:")){ 

    } 
    else { 
     System.out.println("test"); 
     } 
    } 

這是非常不完整的,但我希望在哪裏去旁邊從三項隨機選擇,或者,如果我的代碼是壞的方面的一些技巧。提前致謝!

回答

0

所以一個「Hell_Bovine」有一個國寶級「TC:Cow_(H)」。

所以你在TreasureClassEx.txt

tc:Cow_(H) tc:Act_5_(H)_Equip_B tc:armo3 tc:armo3 

尋找這行,然後你會選擇隨機的三個選項之一。

只要你要找的「寶物類」以「tc:」開頭,你就會繼續閱讀TreasureClassEx,找到正確的線,並隨機選擇。

例如,對於 「TC:Cow_(H)」,你可以選擇 「TC:armo3」。對於「tc:armo3」,你可以選擇「Quilted_Armor」。然後你會停在那裏。

至少這就是我是閱讀說明。; - >

0

可以確保您導入我加的,因爲你不顯示進口的東西我不會增加他們

public static void getTreasureClass(Monster monGet) 
    throws FileNotFoundException{ 
    Random rand = new Random(); 
    String tc=monGet.getTreasureClass(); 
    Scanner file=new Scanner(new File ("TreasureClassEx.txt")); 
    System.out.println(tc); 
    List<String> list = new LinkedList<String>(); 
    while(!file.next().equals(tc)){ 
     file.next(); 
     } 
    tc=file.next(); 
    if (tc.startsWith("tc:")){ 
    list.add(tc); 
    } 

    String treasure = list.get(rand.nextInt(list.size())); 
    else { 
     System.out.println("test"); 
     } 
    } 

所以在這我保存在字符串值「寶」

的例子我不覺得好幫你做作業-_-

+0

感謝,我們還沒有覆蓋類的鏈表,但是我很欣賞的幫助。另外,我對你把String treasure = list.get ...放在哪裏感到困惑。既然它在if和else之間,如果tc以tc開頭還是以其他方式運行,它會運行嗎?或者它獨立於if/else循環?謝謝! – Akaraka

+0

它獨立於if/else語句的,感謝沒收。 – blazingkin

+0

望着指示,我不認爲選擇一個隨機LINE是正確的。看起來隨機性在線內。 –