2013-04-21 16 views
0

我想不出如何說出我想要做的事情,但希望這可以解釋。在Java中重複一系列的線條

我的朋友正在製作基於文本的冒險遊戲,並且我正在努力將遊戲的一部分分離出來以便於管理。

在遊戲中,玩家的統計數據,玩家庫存以及更多的數據會被髮送到另一個課程。

static Char player; 
    static battle bat; 

    public static void directchoice(Char p, battle b) { 
    player = p; 
    bat = b; 
    String[] rightLeft = {"Left", "Right"}; 
    int direct = JOptionPane.showOptionDialog(null, "Left or Right?", "Option", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, rightLeft, rightLeft[0]); 
    if(direct == 0){ 
     Maze.makeChoice(player, bat); 
    } 
    if(direct == 1){ 
     Maze.DoorChoice(player, bat); 
    } 
} 

從這裏可以看出,在課程開始時,「玩家」和「蝙蝠」是角色和戰鬥。這些是從遊戲的前一部分導入的。

在子程序括號中看到的「Char p,battle b」以及「player = p; bat = b;」子內必須重複每個子程序。

因此,舉例來說,這裏是班內其他子程序:

public static void DoorChoice(Char p, battle b) { 
    player = p; 
    bat = b; 
    String[] others = {"Go through door", "Don't go through"}; 
int checkers = JOptionPane.showOptionDialog(null, "Go through door or not?", "Option", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, others, others[0]); 

還有一堆人,如運動員的庫存,怪物,更多的還需要重複的。我想要做的是創建一種自動爲每個子例程重複這些代碼行的方法,而不必將它們全部輸出或複製並粘貼。

我嘗試了我所能想到的,但對java仍然比較不喜歡,我不知道該怎麼做才能重複這些行。

我希望這是有道理的,我很抱歉,如果它不:(

+0

使用循環重複任何 – 2013-04-21 15:32:08

回答

0

你所試圖做的是叫做loop。有many types of loops

這裏是一個通用的例子一個for-loop:?如果您想

for (int counter; counter<repeatXTimes;counter++){ 
//This will repeat for as long as counter<repeatXTimes, and counter will increase once per loop. 
} 
+0

但將這項工作自動化的子內的那些東西我聲明使用須知for循環,但不能認爲他們會如何適用於這種類型的p roblem – 2013-04-21 16:07:44

+0

我已經重新讀過你的文章,看起來你所要做的不是重複相同的代碼,而是不必一遍又一遍地傳遞參數。如果是這種情況,那麼聲明玩家和蝙蝠爲他們所在類別的成員變量,並且您的問題將得到解決。也許甚至可能將它們包含在該類的構造函數中。 – 2013-04-21 17:17:08