Wie definiert man das das array[0,0] ein feld der größe 30x30 und den koordinaten 0,0 ist? oder für array[1,1] koordinaten 30,30?
Es tut mir leid wenn ich euch mit meinen allgemeinen Fragen pder Wiederholungen nerve

Eine Direkte Frage, wie schön. Also:Wie definiert man das das array[0,0] ein feld der größe 30x30 und den koordinaten 0,0 ist? oder für array[1,1] koordinaten 30,30?
Code: Alles auswählen
var
px, py:Integer;
begin
foy y:=0 to AnzahlDerZeilen do begin
for x:=0 to AnzahlderSpalten do begin
px:=x * GameW;
py:=y*GameH;
if GameMap[y,x].typ = stein then canvas.brush.color:=clBlack;
if GameMap[y,x].typ = player1 then canvas.brush.color:=clred;
if GameMap[y,x].typ = player2 then canvas.brush.color:=clblue;
canvas.fillrect(px,py,px+GameW, py+GameH);
end;
end;
end;
kannst du das bitte nochmal erklären?pluto hat geschrieben: TGameFeldTyp =(stein, player1,player2) und muss unterhalb von Type deklariert werden.
Das ist ein sogenannter Aufzählungstyp. Damit kannst du z.b. relativ einfach in einem Case oder in eine IF Abfrage prüfen ob die Bedienung zutrifft:kannst du das bitte nochmal erklären?
Code: Alles auswählen
var1:TGameFeldTyp
...
var1:=GFT_Stein;
if var1 = GFT_Stein then ShowMessage('Ein Stein');
Code: Alles auswählen
if Myraster[Zeile, Spalte] = GFT_Stein then ShowMessage('Ein Stein');
Code: Alles auswählen
if (b div 30 = true) and (c div 30 = true) then //wobei true hier als ganzzahlig interpretiert werden soll
...
Code: Alles auswählen
for v:= 0 to 10 do
for k:= 0 to 8 do
begin
l:=30*k+random(2)*60;
form1.Image1.Canvas.pen.color:=clblack;
form1.Image1.Canvas.pen.width:=1;
form1.Image1.Canvas.brush.color:=clmaroon;
form1.Image1.canvas.rectangle(l,30*v,l+30,(v+1)*30);
end;
end;
Das weiß ich leider nicht genau.wie kann ich abfragen ob der Wert b div 30 eine ganze Zahl ist?
Das brauchst du nicht. Denn: Die Player, sind Variablen, die haben z.b. zwei Felder wie X und Y. Wenn du eine Tastertur Steuerung haben möchtest, kannst du einfach X und Y entsprechend verändern.und kann ich folgende koordinaten von l und v leicht speicher und wieder abrufen?
Hi,scihbam37 hat geschrieben:
und die nächste Frage
wie kann ich abfragen ob der Wert b div 30 eine ganze Zahl ist?Code: Alles auswählen
if (b div 30 = true) and (c div 30 = true) then //wobei true hier als ganzzahlig interpretiert werden soll ...
Das war eher eine allgemeine Frage und nicht auf die Frage davor bezogen.pluto hat geschrieben:Das brauchst du nicht. Denn: Die Player, sind Variablen, die haben z.b. zwei Felder wie X und Y. Wenn du eine Tastertur Steuerung haben möchtest, kannst du einfach X und Y entsprechend verändern.und kann ich folgende koordinaten von l und v leicht speicher und wieder abrufen?
Jedoch solltest du erst das Spielfeld Zeichnen und dann die Player. Das ist der Vorteil wenn du ein Raster Verwenden kannst. Du kannst ganz leicht auf ein Raster-Feld zugreifen. Aber wenn du die unbedingt speichern möchtest:
Du könntest dir ein Record erstellen, wo du die Felder X und Y angelegst. Dann musst du den Datentyp von deinem Raster ändern und vielleicht noch ein paar kleine Anpassungen vornehmen. Z.B. brauchst du dann noch ein Feld Typ für dein Record. Aber wie schon gesagt: Du brauchst in deinem Raster, keine X und keine Y Werte abspeichern. Ist nicht Notwendig(Meiner Meinung nach).
Ohne Array geht es nicht. Du kannst ein Haus auch nicht ohne entsprechendes Material bauen. Es ist wirklich sehr einfach.Sry aber ich versuche das ohne Arrays zu lösen auch wenn es das vielfack komplizierter und umfassender macht.
Code: Alles auswählen
test: array[1..10] of string;
Code: Alles auswählen
//wenn noch kein Text vorhanden ist, dann zaehler erhöhen
for n := 1 to 10 do
begin
if array[n] = '' then zaehler += 1; //zaehler += 1 ist das selbe wie zaehler := zaehler + 1;
end;
Code: Alles auswählen
for v:= 0 to 10 do
for k:= 0 to 8 do
begin
l:=30*k+random(2)*60;
listbox1.Items.Add(inttostr(l));
listbox2.Items.Add(inttostr(v*30));
listbox3.Items.Add(inttostr(l+30));
listbox4.Items.Add(inttostr((v+1)*30));
Image1.Canvas.pen.color:=clblack;
Image1.Canvas.pen.width:=1;
Image1.Canvas.brush.color:=clmaroon;
Image1.canvas.rectangle(l,30*v,l+30,(v+1)*30);
Code: Alles auswählen
for a1:= 0 to listbox1.Items.Count-1 do
if (x1=listbox1.item.????) and (y1=listbox2.item.????) then
...
Was möchtest du mit den "Koordinaten" anfangen? Das brauchst du nicht. Wirklich.jetzt habe ich die Koordinaten der Blöcke in den Listboxen.