Hey Leute ich habe ein großes Problem und zwar will ich das Spiel Conways game Of Life programmieren. Ich nutze hierzu das Programm wxDevC++. Mittlerweile habe ich es hinbekommen über die Widgets ein ordentliches Fenster zu programmieren, allerdings weiß ich nun nicht wo ich das Programm hintun soll. Ich habe es mal für die Konsole geschrieben aber wie schreibe ich das in den widgets oder muss ich dafür noch was anderes tun(zbsp WinApp) Ich weiß da mom nicht mehr weiter. Hier mal das Programm für das Fenster: http://rapidshare.com/files/440639634/Game_of_Life.rar und hier das Spiel für die Konsole:
1 | //Conways Spiel des Lebens//
|
2 | //Programm hat 100 Zellen, wovon 30 anfänglich leben, 20 Generationen sollen simuliert werden
|
3 | //G Parameter für eine Generation
|
4 | //N Parameter für die Anzahl der lebenden Nachbarn jeder Zelle
|
5 | //n Parameter für die Dimension des Spielfeldes
|
6 | //m Parameter für die Anzahl der lebeneden Zellen
|
7 | //Zelle hat im Inneren des Feldes 8, am Rand 5 und in den Ecken drei Nachbarn
|
8 | |
9 | #include <iostream> |
10 | |
11 | using namespace std; |
12 | |
13 | void erzeugeGen() //Erzeugen einer Anfangsgeneration mit einer gegeben Zahl lebender Zellen |
14 | |
15 | { unsigned int**& G; //Deklaration |
16 | unsigned int n,m; |
17 | |
18 | while (m !=0) |
19 | |
20 | G=1; |
21 | m--; |
22 | }
|
23 | |
24 | |
25 | void bestimmeGen() //Erzeugen einer neuen Generation auf Basis einer gegebenen Generation |
26 | |
27 | { unsigned int**& G; //Deklaration |
28 | unsigned int**& N; |
29 | unsigned int n; |
30 | |
31 | for() |
32 | for() |
33 | |
34 | switch
|
35 | case 'a'; /*Besitzt eine Zelle genau zwei lebende Nachbarzellen, dann ändert sich ihr Zustand |
36 | in der nächsten Generation nicht*/
|
37 | |
38 | case 'b'; /*Besitzt die Zelle genau drei lebende Nachbarzellen, dann wird ihr Zustand in der nächsten |
39 | Generation auf "Zelle lebt" gesetzt*/
|
40 | |
41 | case 'c'; /*Besitzt die Zelle weniger als zwei oder mehr als drei lebende Nachbarzellen, dann wird ihr |
42 | Zustand in der nächsten Generation auf "Zelle tot" gesetzt.*/
|
43 | |
44 | }
|
45 | |
46 | |
47 | void bestimmeNachb() //Bestimmen der Anzahl lebender Nachbarzellen aller Zellen einer gegebenen Generation |
48 | |
49 | { unsigned int** G; //Deklaration |
50 | unsigned int**& N; |
51 | unsigned int n; |
52 | |
53 | for() //Berücksichtigung aller Zellen |
54 | for() |
55 | |
56 | for() //Ermitteln der Anzahl der lebenden Nachbarzellen einer Zelle |
57 | for() |
58 | if() |
59 | }
|
60 | |
61 | |
62 | void zeigeGen() //Ausgeben einer gegebenen Generation |
63 | |
64 | { unsigned int** G; //Deklaration |
65 | unsigned int n; |
66 | |
67 | for() |
68 | for() |
69 | }
|
70 | |
71 | |
72 | |
73 | int main() //Hauptprogramm |
74 | |
75 | { unsigned int n; //Deklaration |
76 | unsigned int m; |
77 | unsigned int**G = new unsigned int *[n][n]; |
78 | unsigned int**N = new unsigned int *[n][n]; |
79 | |
80 | cout<<"Die Dimension des Spielfeldes betraegt: "; //Einlesen Der Dimension n des Spielfeldes |
81 | cin>>n; |
82 | cout<<"Anzahl der zu Beginn lebenden Zellen: "; //Einlesen der Anzahl m der zu Beginn lebenden Zellen |
83 | cin>>m; |
84 | |
85 | cout<< //zufällige Verteilung der Zellen auf dem Spielfeld |
86 | // Ausgabe der Anfangsgeneration
|
87 | erzeugeGen() |
88 | zeigeGen() |
89 | |
90 | for(G=0; G<=m; G++) //Durchlaufen aller Generationen |
91 | cout<< G++; //Ausgabe jeder Genration mit Nummer |
92 | bestimme Nachbarn() |
93 | bestimmeGen() |
94 | zeigeGen() |
95 | |
96 | for(n=0; n<m; n++) |
97 | delete[ ] G[n]; |
98 | delete[ ] G; |
99 | |
100 | for(n=0; n<m> n++) |
101 | delete[ ] N[n]; |
102 | delete [ ] N; |
103 | |
104 | }
|
Ich habe in Foren gelesen dass DOS keine gute Idee ist. Aber ich habe bisher nur in DOS gearbeitet und keine Ahnung wie und wo ich das anders programmieren soll. Es soll ja nacher so funktionieren dass ich am anfang mein erstelltes Fenster habe und dadurch die Eigenschaften wählen kann und das Programm laufen lasse. also eure Hilfe ist hier gefragt denn ich komme echt nicht mehr weiter. mfg Willi