2015-12-07 37 views
0

我想記錄在此代碼中繪製的每個矩形的位置。我是一名初學者,並且我的理解只能通過數組列表來完成。我不知道如何構建列表來記錄矩形移動到的每個位置。這是代碼現在的樣子。如何創建一個ArrayList,以便我可以記錄每個這些項目的位置?

Walker w; 

void setup() { 
    size(500, 500); 
    w = new Walker(); 
    background(0); 
    frameRate(15); 
} 

void draw() { 
    w.draw(); 
} 

void mousePressed(){ 
    w.mousePressed(); 
} 

class Walker { 
    int x; 
    int y; 
    float direction; 

    Walker() { 
    x = width/2; 
    y = height/2; 
    } 

    void draw() { 
    rect(x, y, 10, 10); 

    if (direction<1) { //North 
     float choice = random(1); 

     if (choice <0.4) { 
     x=x+10; 
     } else if (choice <0.8) { 
     x=x-10; 
     } else { 
     y=y-10; 
     } 
    } else if (direction<2) { //South 
     float choice = random(1); 

     if (choice <0.4) { 
     x=x-10; 
     } else if (choice <0.8) { 
     x=x+10; 
     } else { 
     y=y+10; 
     } 
    } else if (direction<3) { // East 
     float choice = random(1); 

     if (choice < 0.4) { 
     y=y+10; 
     } else if (choice <0.8) { 
     y=y-10; 
     } else { 
     x=x+10; 
     } 
    } else if (direction<4) { //West 
     float choice = random(1); 

     if (choice < 0.4) { 
     y=y+10; 
     } else if (choice <0.8) { 
     y=y-10; 
     } else { 
     x=x-10; 
     } 
    } 
    } 
    void mousePressed() { 
    direction = random(4); 
    x = width/2; 
    y = height/2; 
    } 
} 
+0

_ _「只能通過一個ArrayList實現」。一個普通的數組,一個List,一個Map,一個Set是一些。如果你打算使用List,它不需要是一個'ArrayList';例如,它可能是一個'LinkedList'。你選擇如何存儲它取決於你以後如何使用它。 –

回答

0

你要創造條件,在那裏你宣佈方向一個ArrayList。

ArrayList<String> previousPoints = new ArrayList<String>(); 

這裏是import語句,你將需要:

import java.util.ArrayList; 

這不是做到這一點的最好辦法,但每當你移動矩形,給出的X和Y座標,你可以添加他們到ArrayList previousPoints像這樣:

previousPoints.add("" + x + "," + y); 

如果你在previousPoints你想要的索引可以檢索x和y:(例如指數爲3)

String[] points = (previousPoints.get(3)).split(","); 
int newX = Integer.parseInt(points[0]); 
int newY = Integer.parseInt(points[1]); 

我希望這有助於Yianna的!

編輯:重要的 - 號有很多方法來存儲你要跟蹤的位置 - >進口

+0

你不應該將自己綁定到特定的實現。如果使用List(接口),並且你已經決定,在這種情況下,一個ArrayList是一個好的List實現_given你正在存儲_和_how你將訪問它_和_how many_和_how它增長&shrinks_然後聲明'清單 previousPoints =新的ArrayList ();'...如果你成長了大量無界限,你可能想要不同的東西,比如'名單 previousPoints =新的LinkedList <>(INITIALSIZE)' –

相關問題