<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Gelöst: Game of Life - Komme bei der Abfrage nicht weiter]]></title><description><![CDATA[<p>Hallo Chummers,</p>
<p>habe im Unterricht die Aufgabe bekommen das Game of Life zu vervollständigen.<br />
Habe da auch schon etliche Stunden verbracht, leider ohne meinen Fehler zu finden.</p>
<p>Als erstes Poste ich das was vom Lehrer vorgegeben wurde.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;

using namespace std;

void nextGeneration();
void print();

const int MaxSpalten=5;
const int MaxZeilen=5;

bool feld [MaxSpalten][MaxZeilen] =
{
	{false, false, false, false, false},
	{false, false, true, false, false},
	{false, false, true, false, false},
	{false, false, true, false, false},
	{false, false, false, false, false}
};

int main()
{
	print();
	cout &lt;&lt; endl;

	for (int i=0; i&lt;100; i++)
	{
		Sleep(1000);
		nextGeneration();
		print();
		cout &lt;&lt; endl;
	}
}

void print()
{
    cout &lt;&lt; endl; 
	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			if (feld[j][i] == true) { cout &lt;&lt; &quot;o &quot;; }
			else { cout &lt;&lt; &quot;. &quot;; }
		}
		cout &lt;&lt; endl;
	}
}

void nextGeneration()
{
      /*......*/
}
</code></pre>
<p>Die Funktion &quot;nexGeneration()&quot; sollte nun von mir so angepasst werden damit die 4 Regeln des Game of Life funktionieren, und in diesem Beispiel ein Blinker entsteht.</p>
<pre><code class="language-cpp">void nextGeneration()
{
	bool feldkopie[MaxSpalten][MaxZeilen];
	int a=0;

	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			feldkopie[j][i]=feld[j][i];
		}
	}

	for (int j=1; j&lt;MaxSpalten-1; j++)
	{
		for (int i=1; i&lt;MaxZeilen-1; i++)
		{
           a=0;
           if (feld[j--][i-1] == true) { a++; }
           if (feld[j--][i] == true) { a++; }
           if (feld[j--][i+1] == true) { a++; }
           if (feld[j][i-1] == true) { a++; }
           if (feld[j][i+1] == true) { a++; }
           if (feld[j++][i-1] == true) { a++; }
           if (feld[j++][i] == true) { a++; }
           if (feld[j++][i+1] == true) { a++; }

           if (feld[j][i] == true &amp;&amp; a&lt;2) feldkopie[j][i] == false;
           if (feld[j][i] == true &amp;&amp; a&gt;3) feldkopie[j][i] == false;
           if (feld[j][i] == true &amp;&amp; (a==2 || a==3)) feldkopie[j][i] == true;
           if (feld[j][i] == true &amp;&amp; a==3) feldkopie[j][i] == true;
        }
	}

	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			if (feldkopie[j][i] == true) { cout &lt;&lt; &quot;o &quot;; }
			else { cout &lt;&lt; &quot;. &quot;; }
		}
		cout &lt;&lt; endl;
	}

	for (int j=0; j&lt;MaxSpalten; j++)
	{
	    for (int i=0; i&lt;MaxZeilen; i++)
		{
			feld[j][i]=feldkopie[j][i];
		}
	}
}
</code></pre>
<p>Ich seh leider den Wald vor lauter Bäumen nicht mehr. Da die Funktion ja nun eigentlich jede einzelne Zelle absuchen müsste nach dem Beginn, Erhalt oder Tot der jeweiligen Zelle.</p>
<p>Damit jeder weiß was ich mit Game of Life meine hier der Wiki-Link <a href="http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens" rel="nofollow">http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens</a>.</p>
<p>Wäre um Hilfe dankbar.</p>
<p>So long</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273915/gelöst-game-of-life-komme-bei-der-abfrage-nicht-weiter</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:45:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273915.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Sep 2010 14:59:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Thu, 16 Sep 2010 07:21:21 GMT]]></title><description><![CDATA[<p>Hallo Chummers,</p>
<p>habe im Unterricht die Aufgabe bekommen das Game of Life zu vervollständigen.<br />
Habe da auch schon etliche Stunden verbracht, leider ohne meinen Fehler zu finden.</p>
<p>Als erstes Poste ich das was vom Lehrer vorgegeben wurde.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;

using namespace std;

void nextGeneration();
void print();

const int MaxSpalten=5;
const int MaxZeilen=5;

bool feld [MaxSpalten][MaxZeilen] =
{
	{false, false, false, false, false},
	{false, false, true, false, false},
	{false, false, true, false, false},
	{false, false, true, false, false},
	{false, false, false, false, false}
};

int main()
{
	print();
	cout &lt;&lt; endl;

	for (int i=0; i&lt;100; i++)
	{
		Sleep(1000);
		nextGeneration();
		print();
		cout &lt;&lt; endl;
	}
}

void print()
{
    cout &lt;&lt; endl; 
	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			if (feld[j][i] == true) { cout &lt;&lt; &quot;o &quot;; }
			else { cout &lt;&lt; &quot;. &quot;; }
		}
		cout &lt;&lt; endl;
	}
}

void nextGeneration()
{
      /*......*/
}
</code></pre>
<p>Die Funktion &quot;nexGeneration()&quot; sollte nun von mir so angepasst werden damit die 4 Regeln des Game of Life funktionieren, und in diesem Beispiel ein Blinker entsteht.</p>
<pre><code class="language-cpp">void nextGeneration()
{
	bool feldkopie[MaxSpalten][MaxZeilen];
	int a=0;

	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			feldkopie[j][i]=feld[j][i];
		}
	}

	for (int j=1; j&lt;MaxSpalten-1; j++)
	{
		for (int i=1; i&lt;MaxZeilen-1; i++)
		{
           a=0;
           if (feld[j--][i-1] == true) { a++; }
           if (feld[j--][i] == true) { a++; }
           if (feld[j--][i+1] == true) { a++; }
           if (feld[j][i-1] == true) { a++; }
           if (feld[j][i+1] == true) { a++; }
           if (feld[j++][i-1] == true) { a++; }
           if (feld[j++][i] == true) { a++; }
           if (feld[j++][i+1] == true) { a++; }

           if (feld[j][i] == true &amp;&amp; a&lt;2) feldkopie[j][i] == false;
           if (feld[j][i] == true &amp;&amp; a&gt;3) feldkopie[j][i] == false;
           if (feld[j][i] == true &amp;&amp; (a==2 || a==3)) feldkopie[j][i] == true;
           if (feld[j][i] == true &amp;&amp; a==3) feldkopie[j][i] == true;
        }
	}

	for (int j=0; j&lt;MaxSpalten; j++)
	{
		for (int i=0; i&lt;MaxZeilen; i++)
		{
			if (feldkopie[j][i] == true) { cout &lt;&lt; &quot;o &quot;; }
			else { cout &lt;&lt; &quot;. &quot;; }
		}
		cout &lt;&lt; endl;
	}

	for (int j=0; j&lt;MaxSpalten; j++)
	{
	    for (int i=0; i&lt;MaxZeilen; i++)
		{
			feld[j][i]=feldkopie[j][i];
		}
	}
}
</code></pre>
<p>Ich seh leider den Wald vor lauter Bäumen nicht mehr. Da die Funktion ja nun eigentlich jede einzelne Zelle absuchen müsste nach dem Beginn, Erhalt oder Tot der jeweiligen Zelle.</p>
<p>Damit jeder weiß was ich mit Game of Life meine hier der Wiki-Link <a href="http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens" rel="nofollow">http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens</a>.</p>
<p>Wäre um Hilfe dankbar.</p>
<p>So long</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952996</guid><dc:creator><![CDATA[Althi]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:07:37 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Was willst du jetzt wissen?</p>
<p>So wie ich das sehe ist das alles schon fertig. Oder funktioniert irgendetwas nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953002</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:07:37 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:16:57 GMT]]></title><description><![CDATA[<p>Nun die Ausgabe ist immer die gleiche.<br />
.....<br />
..o..<br />
..o..<br />
..o..<br />
.....</p>
<p>Das kommt bei Ausgabe von print(). Leider aber auch bei der Ausgabe von nextGeneration(). Dort müsste die ausgabe jedoch so sein.<br />
.....<br />
.....<br />
.ooo.<br />
.....<br />
.....<br />
Und danach müsste das dann wiederum so aussehen wie bei der ersten Ausgabe.</p>
<p>Nur zeigt er immer und immer wieder das erste an und ändert nichts.</p>
<p>Nutze hier momentan den Dev-C++ 4.9.9.2 da ich leider keinen anderen auf Arbeit installieren kann.</p>
<p>Edith meint: nichts wichtiges geändert ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953009</guid><dc:creator><![CDATA[Althi]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:21:20 GMT]]></title><description><![CDATA[<p>Du weißt ja, was passieren soll. Und du weißt, dass dein Programm nicht ganz das macht, was passieren soll. Anstatt stundenlang auf den Code zu starren (du sagst ja selbst, Wald und Bäume und so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ), solltest du den Debugger nutzen! Setze dir an einer günstigen Stelle einen Haltepunkt, starte das Programm und dann gehe schrittweise durch den Code, bis du die Stelle gefunden hast, an der dein Programm nicht das Gewünschte macht. So solltest du den Fehler schnell finden. Merke: der Debugger ist dein Freund! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953013</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:28:19 GMT]]></title><description><![CDATA[<p>Der Index j läuft aus dem Ruder... du initialisierst ihn in der Schleife mit 1 und dekrementierst 3x. Was spricht gegen die Indizes j-1 in den Zeilen 19-21, j in Zeilen 22+23 und j+1 in den Zeilen 24-26?</p>
<p>Edit: Eine Zelle kann niemals von false auf true wechseln, egal wieviele Nachbarn leben, ist das so beabsichtigt? (Kenne die Regeln des Game of Life nicht genau)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953016</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:35:36 GMT]]></title><description><![CDATA[<p>Nur zum Verständniss. Ist j-- (oder auch j++) nicht das gleiche wie j-1 (oder j+1) zumindest wurde uns das so beigebracht.<br />
Oder ist es so das ich mit j-- komplett bis zum durchgangsende um eines dekrementiere?</p>
<p>Beabsichtig ist folgendes: wenn in den Nachbarzellen (auch diagonal) &quot;genau(!!! )&quot; 3 Zellen auf &quot;true&quot; sind, dann wird die Zelle auch True.</p>
<p>Ich versuche aber gleich deinen Ansatz.</p>
<p>Edith meint: Ah jetzt weiß ich wieso du das fragst, da ich ja bei i auch +/-1 geschrieben habe. Dies brachte leider auch nichts.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16702">@_matze</a>: Ich kenne mich mit dem Dev-C++ leider nur in so weit aus das ich Dateien erstellen kann und die dann Kompilieren und Ausführen kann. mehr leider nicht. Nutze normalerweise VisualStudio Express. Wobei ich dies bei dem MS Produkt auch noch nie getan habe. Werde mich dann da noch einarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953022</guid><dc:creator><![CDATA[Althi]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 15:36:20 GMT]]></title><description><![CDATA[<p>j-- ist semantisch das gleiche wie j = j -1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953026</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 15 Sep 2010 15:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Wed, 15 Sep 2010 16:17:48 GMT]]></title><description><![CDATA[<p>Was glaubst du, was z.B. diese Zeile</p>
<pre><code class="language-cpp">if (feld[j][i] == true &amp;&amp; a&lt;2) feldkopie[j][i] == false;
</code></pre>
<p>bewirkt? Überprüf das mal mit einem Debugger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953047</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 15 Sep 2010 16:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Thu, 16 Sep 2010 06:58:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if (feld[j][i] == true &amp;&amp; a&lt;2) feldkopie[j][i] == false;
</code></pre>
<p>Die if Abfrage überprüft das feld[j][i] ob es &quot;true&quot; ist UND ob a kleiner als 2 wäre. Wenn dies Zutrifft wird feldkopie[j][i] auf &quot;false&quot; gesetzt.<br />
Was in diesem Fall der Beschreibung entsprechen würde.</p>
<p>Da eine Lebendezelle stirbt wenn weniger als 2 und mehr als 3 benachbarte Zellen auf &quot;true&quot; sind.<br />
Eine Leere Zelle wird lebendig wenn genau 3 Nachbarzellen &quot;true&quot; sind und eine lebende Zelle bleibt erhalten wenn 2 oder 3 Nachbarzellen auf &quot;true&quot; sind.</p>
<p>Ich geh das ganze jetzt aber mit dem debugger durch... mal gucken ob ich das hinbekomme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953233</guid><dc:creator><![CDATA[Althi]]></dc:creator><pubDate>Thu, 16 Sep 2010 06:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Thu, 16 Sep 2010 07:08:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<pre><code class="language-cpp">if (feld[j][i] == true &amp;&amp; a&lt;2) feldkopie[j][i] == false;
</code></pre>
<p>Bist du dir da ganz sicher, dass feldkopie[j][i] auf &quot;false&quot; <strong>gesetzt&quot;</strong> wird?<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953236</guid><dc:creator><![CDATA[Cyrpius]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:08:40 GMT</pubDate></item><item><title><![CDATA[Reply to Gelöst: Game of Life - Komme bei der Abfrage nicht weiter on Thu, 16 Sep 2010 07:20:38 GMT]]></title><description><![CDATA[<p>Kopf auf Tisch knall... Danke. *grr* Hab vergessen das == ein &quot;Vergleichsoperator&quot; ist und kein Zuweisungsoperator. ^^ So nun ändert er zumindest schon mal die ausgabe.. aber stimmen tut es immer noch nciht richtig.</p>
<p>Weiß aber nun besser wo der Fehler liegen wird ^^</p>
<p>Vielen Dank.</p>
<p>Wobei erst der Groschen gefallen ist mit <strong>&quot;gesetzt&quot;</strong> ^^</p>
<p>Edith meint: er macht es jetzt doch sow ie er soll. Noch einmal vielen Dank an alle die mir geholfen haben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953245</guid><dc:creator><![CDATA[Althi]]></dc:creator><pubDate>Thu, 16 Sep 2010 07:20:38 GMT</pubDate></item></channel></rss>