Diskuze: Struktura pro 2D mapu
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

					Tvůrce				
			
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Na tohle si uděláš normálně třídy. Není potřeba tam řešit, aby to bylo úsporně uložené, ty struktury mají pár bajtů. Co se potom řeší je třeba kolize pomocí Octree a podobné optimalizace, ale určitě ne velikost typu toho políčka.
díky, jen si nevím rady, jak navázat konkrétní bloky na mapě na definice těch základních bloků
Trochu jsem si upravil terminologii
a vyšel mi z toho následující kód:
public enum TypBloku {
    HLINA(2, 1),
    ZED(10, 2),
    TRAVA(3, 3);
    private final int tvrdost;
    private final int textura;
    private TypBloku(int tvrdost, int textura) {
        this.tvrdost = tvrdost;
        this.textura = textura;
    }
    public int getTvrdost() {
        return tvrdost;
    }
    public int getTextura() {
        return textura;
    }
}
public class Blok {
    private final TypBloku typ;
    private float procentoZniceni;
    public Blok(TypBloku typ, float procentoZniceni) {
        this.typ = typ;
        this.procentoZniceni = procentoZniceni;
    }
    public float getProcentoZniceni() {
        return procentoZniceni;
    }
    public void setProcentoZniceni(float procentoZniceni) {
        this.procentoZniceni = procentoZniceni;
    }
    public TypBloku getTyp() {
        return typ;
    }
}
public class Mapa {
    private final int sirka;
    private final int vyska;
    private final Blok[] bloky;
    public Mapa(int sirka, int vyska) {
        this.sirka = sirka;
        this.vyska = vyska;
        this.bloky = new Blok[sirka * vyska];
    }
    public int getSirka() {
        return sirka;
    }
    public int getVyska() {
        return vyska;
    }
    public Blok getBlok(int x, int y) {
        int index = getIndex(x, y);
        return this.bloky[index];
    }
    private int getIndex(int x, int y) {
        return y * sirka + x;
    }
}
					
						Super, mockrát děkuji 
pořád jsem na to šel nějak špatně a měl jsem to zbytečně
překombinované 
Zobrazeno 5 zpráv z 5.