Griever: Tabelle als Karte aus md. Array.

Beitrag lesen

Hi.

Ich habe mir mal etwas ausgedacht. Ich habe ein Array:

  
var posx=0,posy=0;  
var karte = new Array();  
karte[0]=new Array();  
// Feld farbe, Passierbar, Formeln (Splitting "|");  
karte[0][0] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][1] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][2] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][3] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][4] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][5] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][6] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][7] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][8] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][9] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[0][10] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][0] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][1] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][2] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][3] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][4] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][5] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][6] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][7] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][8] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][9] = new Array("#000000",true,"open_shop()|open_inn()");  
karte[1][10] = new Array("#000000",true,"open_shop()|open_inn()");  
// usw ...  

und gebe dieses via Funktion von der Aktuellen Position (posx,posy) in einer Tabelle aus:

  
document.write("<table style=\"table-layout:fixed;\" cellspacing='0' cellpadding='0' border='0'>")  
for(var i = posx-2;i<=posx+2;i++)  
{  
  document.write("<tr>")  
  for(var j = posy-2;j<=posy+2;j++)  
  {  
    if(karte[i]&&karte[i][j])  
    document.write("<td style=\"width:20px;height:20px;background:"+karte[i][j][0]+";\">&nbsp;</td>")  
    else  
    document.write("<td style=\"width:20px;height:20px;background:red;\">&nbsp;</td>")  
  }  
  document.write("</tr>")  
}  
document.write("</table>")  

Natürlich habe ich bei meinem Script schon die Bewegen-Funktion via Berechnung angeben lassen, dass nur die inneren 9 Felder zur Bewegung dienen.

Nun möchte ich fragen, ob man das, was hier steht, auch kürzer/sparsamer machen kann. Ich selbst habe z. B. noch nie mit Nodes oder so gearbeitet.

Mfg
Griever