Autor |
Beitrag |
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Di 24.03.15 17:39
ja, so läuft das programm wieder 
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 24.03.15 17:46
Moin!
OK, dann setz N doch mal testweise auf 10 und starte das Programm. Was fällt auf?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Di 24.03.15 17:50
mit N=10 ist das Raster 10x10 groß
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 24.03.15 18:10
Moin!
Ja, klar.  Aber das Fenster dürfte doch in der Größe nicht passen und kommt man noch an den Automatik-Button dran?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Di 24.03.15 18:22
ne, das fenster musste ich größer machen und das dinf zum simulation starten musste ich auch verschieben 
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 24.03.15 18:27
Moin!
OK, dann schlage ich vor: - du verschiebst die Automatik-Checkbox nach oben
- du passt die Koordinaten-Berechnung für die Shapes an, so dass sie etwas weiter unten liegen
- mit der Eigenschaft ClientWidth und ClientHeight kannst du die Größe des Fensters in der FormCreate-Methode auch per Code anpassen
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Di 24.03.15 20:18
jaaa, so klappts  jetzt passt das fenster
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 24.03.15 21:09
Moin!
Dann zeig doch bitte nochmal den aktuellen Stand der FormCreate-Methode.
Was soll´s denn als nächstes sein?  Möchtest du die Regeln für Geburt/Tod anpassbar machen? Oder willst du lieber erst die Feldgröße vom Benutzer wählen lassen?
Bedenke: was auch immer du wählst, du musst dazu auch irgend eine Idee haben, wie man das denn umsetzen könnte...  (klar, das muss kein fertiger Code sein, eine umgangssprachliche Beschreibung, wie vorzugehen ist oder welcher besondere "Trick"/Gedanke weiterhilft, um an´s Ziel zu kommen, reicht auch schon)
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Di 24.03.15 21:21
also die aktuelle formcreate-methode
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.FormCreate(Sender: TObject); var snr,y,x : integer; shape : TShape; begin for y := 0 to N-1 do for x := 0 to N-1 do begin Shape := TShape.Create(Self); Shape.Parent := Self; snr := x +y *N +1; Shape.Name := 'Shape'+inttostr(snr); Shape.Left := 8+x*25; Shape.Top := 48+y*25; Shape.Width := 25; Shape.Height := 25; Shape.OnMouseDown := @Shape1MouseDown; ClientHeight := N*25+100; ClientWidth := N*25+80; end; end; |
ich würde die Regeländerun bevorzugen.
Mein ganz grober plan: Ich muss eingeben können,was passiert bei wie viel NAchbarn, dafür würde ich checkboxen nehmen, also 8 für geburt und 8 für tod, wenn nichts gewählt wird für ne bestimmte nachbar-anzahl, dann passiert nichts mit der Zelle.
Und dann muss das Ergebnis, ob die Zelle geboren wird in die Rechnen-prozedur einlesen können, damit die das dann anwenden kann
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 25.03.15 00:07
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Mi 25.03.15 12:36
ich würd das so machen:

Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 25.03.15 18:13
Moin!
OK, wie müssten denn die Haken gesetzt werden, um die aktuellen Regeln abzubilden?
cu
Narses
PS: Hast du den Fehler mit der Fenstergröße noch behoben? 
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Mi 25.03.15 18:52
ne, weiß nicht was ich da ändern muss  funktioniert ja so
so mit jetzigen regeln wär's das

Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 25.03.15 23:53
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Sa 28.03.15 00:59
die grenzen die sachen ein die in der schleife passieren, also muss ich das client... aus den schleifen rausnehmen damits nur einmal so groß ist
mit überleben wär's dann wie auf dem bild
das macht dass das geschaut wird ob die zelle zwei oder drei lebende zellen hat und man müsste jetzt nur das in der eckigen klammer ändern können, dass da die wahren werte von der überlebenden Zelle reinkommen damit sich die zelle schwarz färbt
Einloggen, um Attachments anzusehen!
|
|
Happy_Penguin
Hält's aus hier
Beiträge: 9
|
Verfasst: Sa 28.03.15 14:22
Ein kleiner Tipp von mir...
Wie wäre es denn, wenn du nun zwei Arrays für das Regelwerk anlegst?
Einen Array, wann eine Zelle neu entsteht und dann einen, wann sie überlebt.
Delphi-Quelltext 1: 2: 3:
| var ueberleben: Array[0..8] of Boolean; neuEntstehen: Array[0..8] of Boolean; |
Durch die Checkboxen kannst du ja dann prima darauf zugreifen.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Sa 28.03.15 16:58
Moin!
Nini hat folgendes geschrieben : | die grenzen die sachen ein die in der schleife passieren, also muss ich das client... aus den schleifen rausnehmen damits nur einmal so groß ist |
 Geht doch.
Nini hat folgendes geschrieben : | mit überleben wär's dann wie auf dem bild |
Jawoll, einfach invertieren.
Nini hat folgendes geschrieben : | das macht dass das geschaut wird ob die zelle zwei oder drei lebende zellen hat |
Jup.
Nini hat folgendes geschrieben : | und man müsste jetzt nur das in der eckigen klammer ändern können, dass da die wahren werte von der überlebenden Zelle reinkommen damit sich die zelle schwarz färbt |
Genau, und das werden wir als nächstes tun.
Diese Aufzählungen in eckigen Klammern nennt man eine Menge, und statt das als Konstante zu verwenden, wie in der if-Anweisung kann man das auch als Variable verwenden.  Da wir von verschiedenen Stellen im Code darauf zugreifen können wollen, müssen wir die Variable in der Klasse deklarieren:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| const N = 10; type TNachbarn = 1..8; TRegel = set of TNachbarn; TFeld = array[0..N-1, 0..N-1] of Boolean; TForm1 = class(TForm) ... public Feld: TFeld; Ueberleben: TRegel; Geburt: TRegel; function LebtNachbar(x, y: Integer): Boolean;
...
procedure TForm1.FormCreate(Sender: TObject); var x, y, snr: Integer; Shape: TShape; begin Ueberleben := [2, 3]; Geburt := [3]; ClientWidth := 17 +24 *N; ... |
Das ist die Vorarbeit, um mit den Regel-Mengen arbeiten zu können. Dein Part ist nun den Code in der Rechnen-Methode so anzupassen, dass mit den neuen Regel-Mengen gearbeitet wird. Vorschlag?
@ Happy_Penguin: Das kann man sicher auch so machen, ich würde aber den Ansatz mit den Mengen empfehlen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Happy_Penguin
Hält's aus hier
Beiträge: 9
|
Verfasst: Sa 28.03.15 17:09
Okay das geht natürlich auch
Ich möchte nur noch anmerken, dass auch 0 Nachbarn möglich sind und auch das vom Nutzer einstellbar sein sollte...
Also am Besten TNachbarn entsprechend anpassen
Delphi-Quelltext
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Sa 28.03.15 17:21
Moin!
Happy_Penguin hat folgendes geschrieben : | Ich möchte nur noch anmerken, dass auch 0 Nachbarn möglich sind und auch das vom Nutzer einstellbar sein sollte... |
Und richtig klasse wäre es, wenn Nini das selbst merkt...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Nini 
      
Beiträge: 170
Erhaltene Danke: 12
|
Verfasst: Sa 28.03.15 17:34
|
|