AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spiel des Lebens; mal wieder

Offene Frage von "Tiar"
Ein Thema von Tiar · begonnen am 28. Feb 2006 · letzter Beitrag vom 3. Mär 2006
 
Tiar

Registriert seit: 28. Feb 2006
7 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Spiel des Lebens; mal wieder

  Alt 2. Mär 2006, 11:46
So, ich bin zwar ein Stück weiter, aber ich komm einfach nicht mit der Konvertierung vom stringgrid in das char-feld klar. mein prog. startet zwar, aber sobald ich die zweite generation generieren lassen möchte, stürzt es ab.
Hat jemand einen hilfreichen Tipp oder konstruktive Kritik bzw ne Idee, wie ich das umsetzen könnte. Wär super, wenn sich jemand mal meinen anscheinend verkorksten Quelltext zu Gemüte ziehen würde:
Delphi-Quellcode:
var
  Lebensraumsimulator: TLebensraumsimulator;
  p,s,an,n :integer; //p=eingegebene Anfagszahl Individuen, s=Seitenlänge des Grids, n=Nachbar, an=Anzahl Nachbarn
  l:ARRAY of ARRAY of char;

implementation

{$R *.DFM}

Function Feldcheck(x,y:integer):integer;
VAR x2,y2 :integer;
BEGIN
an:=0;
 begin
 For x2:=x-1 to x+1 do
  For y2:=y-1 to y+1 do
   If not (x2=x) and (y2=y) then
   If (x2>=0) and (x2<s) and (y2>=0) and (y2<s) then
   If l[x2,y2]='*Then inc(an);
 end;
result:=an;
END;


PROCEDURE Evolution;
VAR x,y,x3,y3 :integer;
BEGIN
For x:=0 to s-1 Do
 For y:=0 to s-1 Do
  n:=Feldcheck(x,y);
  If l[x,y]='*Then Begin
   If n=2 or 3 Then l[x3,y3]:='*'
   Else l[x3,y3]:='t';
  End;
  If l[x,y]='tThen Begin
   If n=3 Then l[x3,y3]:='*'
   Else l[x3,y3]:='t';
  End;
END;

PROCEDURE Ausgabe; //Das Array mit x3 und y3 soll die Werte zwischenspeichern, hab ich mir zumindest so gedacht
VAR x,y,x3,y3:integer;
BEGIN
For x:=0 to s-1 do
 For y:=0 to s-1 do
  If l[x3,y3]='*Then
  Lebensraumsimulator.Stringgrid1.Cells[x,y]:='*'
  Else Lebensraumsimulator.Stringgrid1.Cells[x,y]:='';
END;

procedure TLebensraumsimulator.Button5Click(Sender: TObject); //Klick "Weiter"
var x,y:integer;
begin
Button2.visible:=false;
Button3.visible:=false;
g:=g+1;
Label5.Caption:=IntToStr(g);
for x:=0 to s-1 do
 for y:=0 to s-1 do
  If Stringgrid1.Cells[x,y]='*Then l[x,y]:='*//Bei Einzelablauf erscheint an genau dieser Stelle die Fehlermeldung, Warum?
  Else l[x,y]:='t';
  Evolution;
  Ausgabe;
end;
Schon mal im Vorraus THX
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz