<?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[Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen?]]></title><description><![CDATA[<p><em>Hallo Community!</em></p>
<p>Ich habe folgendes Problem. Ich bin gerade dabei ein Feld als [6][6]-Array zu verwirklichen. Am Anfang sind alle Plätze des Arrays mit dem selben Zeichen belegt. Der Nutzer kann nun die Koordinate des Punktes bestimmen, sodass dort ein anderes Zeichen gesetzt wird. Soweit so gut.<br />
Jetzt will ich nach dem folgenden Schema überprüfen, ob der Nutzer mit seinem Zeichen eine Kette von zum Beispiel 3 geschaffen hat. Also zum Beispiel:<br />
000000<br />
000000<br />
000000<br />
00XXX0<br />
000000<br />
000000<br />
Ich habe mir jetzt gedacht, ich könnte das in der Art <strong>WENN Zeichen GLEICH dem Zeichen eins weiter links UND GLEICH dem Zeichen zwei weiter links ist, DANN wurde eine Reihe geschaffen</strong>.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Wie kann ich diese variablen Orte angeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205920/wie-einträge-in-mehrdimensionalem-array-quot-dynamisch-variabel-quot-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 04:13:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205920.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Feb 2008 13:44:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 13:44:08 GMT]]></title><description><![CDATA[<p><em>Hallo Community!</em></p>
<p>Ich habe folgendes Problem. Ich bin gerade dabei ein Feld als [6][6]-Array zu verwirklichen. Am Anfang sind alle Plätze des Arrays mit dem selben Zeichen belegt. Der Nutzer kann nun die Koordinate des Punktes bestimmen, sodass dort ein anderes Zeichen gesetzt wird. Soweit so gut.<br />
Jetzt will ich nach dem folgenden Schema überprüfen, ob der Nutzer mit seinem Zeichen eine Kette von zum Beispiel 3 geschaffen hat. Also zum Beispiel:<br />
000000<br />
000000<br />
000000<br />
00XXX0<br />
000000<br />
000000<br />
Ich habe mir jetzt gedacht, ich könnte das in der Art <strong>WENN Zeichen GLEICH dem Zeichen eins weiter links UND GLEICH dem Zeichen zwei weiter links ist, DANN wurde eine Reihe geschaffen</strong>.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Wie kann ich diese variablen Orte angeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458865</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Tue, 19 Feb 2008 13:44:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 13:50:18 GMT]]></title><description><![CDATA[<p>So zum Beispiel:</p>
<pre><code class="language-cpp">if (array[x][y]==array[x+1][y] //...
</code></pre>
<p>Innerhalb der eckigen Klammern kannst du praktisch beliebig komplexe Ausdrücke schreiben, auch Funktionsaufrufe (solange sie den richtigen Typ liefern).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458868</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Tue, 19 Feb 2008 13:50:18 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 14:29:38 GMT]]></title><description><![CDATA[<p>Naja gilt die Kette auch für 0? Soll die Kette nur waagerecht gehen?</p>
<pre><code class="language-cpp">template&lt;typename iterator_type, typename element_type&gt;
std::pair&lt;bool, iterator_type&gt; find_chain(iterator_type first, iterator_type last, element_type const &amp; element, const std::size_t size)
{
    for (iterator_type it(first); (it + size) &lt; last; ++it)
    {
        bool chain(true);
        for (iterator_type it_chain(it); (it_chain != (it + size)) &amp;&amp; chain == true; ++it_chain)
            chain = *it_chain == element;

        if (chain == true) return std::make_pair&lt;bool, iterator_type&gt;(true, it);
    }
    return std::make_pair&lt;bool, iterator_type&gt;(false, first);
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> sowas geht doch <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>
<pre><code class="language-cpp">int main()
{
    int arr_data[6][6];
    const std::pair&lt;bool, int*&gt; result(find_chain(arr_data[0], arr_data[0] + 6, 10, 3));
}
</code></pre>
<p>So würdest du dann bsw. die Zeile 0 des Array &quot;arr_data&quot; nach eine Folge von drei &quot;10&quot;-nen durchsuchen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458878</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 19 Feb 2008 14:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 14:08:10 GMT]]></title><description><![CDATA[<p>Schaut in data ob in einer der &quot;Zeilen&quot; &quot;needed&quot; mal &quot;search&quot; hintereinander vorkommt (sollte es zumindest):</p>
<pre><code class="language-cpp">int data[10][10];
int needed = 3;
int search = 7;

bool success = false;
for(int x = 0; x &lt; 10; ++x){
  for(int y = 0; y &lt; 10 - needed; ++y){
    success = true;
    for(int k = 0; k &lt; needed; ++k){
      if (data[x][y+k] != search){
         success = false;
         break;
      }
    }
    if (success) break;
  }
  if (success) break;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1458881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458881</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 19 Feb 2008 14:08:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 14:08:59 GMT]]></title><description><![CDATA[<p>@(D)Evil: Er ist noch bei einfach Grundstrukturen und du kommst mit sowas <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458883</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 Feb 2008 14:08:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 14:16:35 GMT]]></title><description><![CDATA[<p>Vielen Dank erstmal für die schnelle Hilfe. Ich werde nach und nach alles ausprobieren. das mit [x+1] hatte ich so in der Art glaube ich schon mal probiert. Aber ich prob einfach nochmal alles und sag wenns nicht geht, was der Compiler genau meckert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458890</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Tue, 19 Feb 2008 14:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 14:33:17 GMT]]></title><description><![CDATA[<p>Wobei man meinen Algorithmus natürlich optimieren könnte.</p>
<pre><code class="language-cpp">namespace algorithm
{
	template&lt;typename iterator_type, typename element_type&gt;
	std::pair&lt;bool, iterator_type&gt; find_chain(iterator_type first, iterator_type last, element_type const &amp; element, const std::size_t size)
	{
		for (iterator_type it(first); (it + size) &lt; last; ++it)
		{
			iterator_type it_chain(it);
			for (; (it_chain != (it + size)) &amp;&amp; *it_chain == element; ++it_chain);
			if ((it + size) == it_chain) return std::make_pair&lt;bool, iterator_type&gt;(true, it);
			it = it_chain;
		}
		return std::make_pair&lt;bool, iterator_type&gt;(false, first);
	}
}; // algorithm
</code></pre>
<p>z.B. sollte schon um einiges bessere Durchlaufzeiten haben ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458905</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 19 Feb 2008 14:33:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 18:08:56 GMT]]></title><description><![CDATA[<p>Ich habe mir jetzt nochmal die Methode, die mir am Einfachsten erscheint herausgesucht. Ich hatte es aber auch schon einmal so probiert. (Nicht grad verwunderlich: ) Es funktioniert nicht.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
	char Feld[3][3] = {
		{'-', '-', '-',},
		{'-', '-', '-',},
		{'-', '-', '-',},
	};

	for (int x = 0; x &lt; 3; x++) {
		for (int y = 0; y &lt; 3; y++) {
			cout &lt;&lt; Feld[x][y] &lt;&lt; ' ';
		}
		cout &lt;&lt; '\n';
	}

	if (Feld[x][y] == Feld[x+1][y]) {
		cout &lt;&lt; &quot;Funktioniert&quot;;
	}

	cin.get();
	return 0;
}
</code></pre>
<p>Der Compiler (aktueller MinGW) sagt folgendes, aus dem ich nicht recht schlau werde:</p>
<pre><code>C:\DOKUME~1\Chef\Desktop\4_GEWI~1.CPP: In function `int main()':
C:\DOKUME~1\Chef\Desktop\4_GEWI~1.CPP:18: error: name lookup of `x' changed for new ISO `for' scoping
C:\DOKUME~1\Chef\Desktop\4_GEWI~1.CPP:11: error:   using obsolete binding at `x'
C:\DOKUME~1\Chef\Desktop\4_GEWI~1.CPP:18: error: `y' was not declared in this scope
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1459034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459034</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Tue, 19 Feb 2008 18:08:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 18:45:49 GMT]]></title><description><![CDATA[<p>int x und int y sind nur innerhalb der for-Schleife gültig.<br />
Machs so:</p>
<p>int x, y;<br />
for (x = 0; ... usw. usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1459054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459054</guid><dc:creator><![CDATA[willy]]></dc:creator><pubDate>Tue, 19 Feb 2008 18:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 18:49:43 GMT]]></title><description><![CDATA[<p>So wie ich das sehe, würde es aber vermutlich mehr Sinn machen, die if-Abfrage in die innere Schleife zu bewegen.<br />
Edit: dann darf x aber nicht bis 2 gezählt werden, da 2+1 über das Array hinaus geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1459056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459056</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Tue, 19 Feb 2008 18:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Tue, 19 Feb 2008 19:46:04 GMT]]></title><description><![CDATA[<p><em>Vielen Dank für die bisherige schnelle Hilfe, <strong>aber</strong>:</em></p>
<p>Irgendwie klappt das alles noch nicht ganz optimal. Wenn ich die Ausgabe in die äußere Schleife setze, bleibt die Fehlermeldung. Bei der inneren ergibt sich die folgende Ausgabe:</p>
<pre><code>- Funktioniert- Funktioniert- Funktioniert
- Funktioniert- Funktioniert- Funktioniert
- - -
</code></pre>
<p>Doch das ist ganz und gar nicht was ich will. Kann ich nicht irgendwie deklarieren, dass die erste eckige Klammer die Variable x und die zweite die Variable y bekommt. Quasi so in der Art:</p>
<pre><code class="language-cpp">char Feld[x][y]
</code></pre>
<p>Sodass ich dieses x und y mit rechungen (z.B. x+1) überall ausführen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1459096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459096</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Tue, 19 Feb 2008 19:46:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Wed, 20 Feb 2008 17:52:08 GMT]]></title><description><![CDATA[<p>Dein Programm:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
    char Feld[3][3] = {
        {'-', '-', '-',},
        {'-', '-', '-',},
        {'-', '-', '-',},
    };
	int x, y;

	for (x = 0; x &lt; 3; x++) {
        for (y = 0; y &lt; 3; y++) {
            cout &lt;&lt; Feld[x][y] &lt;&lt; ' ';
        }
        cout &lt;&lt; '\n';
    }

    if (Feld[x][y] == Feld[x+1][y]) {
        cout &lt;&lt; &quot;Funktioniert&quot;;
    }

    cin.get();
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1459655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459655</guid><dc:creator><![CDATA[willy]]></dc:creator><pubDate>Wed, 20 Feb 2008 17:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Wed, 20 Feb 2008 18:10:12 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Hilfe. Bei mir gabs immer ein Fehler und Windows wollte ein Problembericht senden. Dabei hatte ich es fast genau so... (Ich hab blöderweise in der for-Schleife nochmal &quot;int x...&quot; geschrieben. Naja...)<br />
Komischerweise gibt es keine Ausgabe mit &quot;Funktioniert&quot;. Nur das Spielfeld mit</p>
<pre><code>---
---
---
</code></pre>
<p>Dabei müsste es doch so korrekt sein. Oder steh ich jetzt irgendwie volle Kanne auf dem Schlauch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1459665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459665</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Wed, 20 Feb 2008 18:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Wed, 20 Feb 2008 18:37:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(void) {
    char Feld[3][3] = {
       /*entspricht Feld[0][0],Feld[0][1] und Feld[0][2]*/ {'-', '-', '-',},   
       /*entspricht Feld[1][0],Feld[1][1] und Feld[1][2]*/ {'-', '-', '-',},
       /*entspricht Feld[2][0],Feld[2][1] und Feld[2][2]*/ {'-', '-', '-',},
    };
	int x, y;

	for (x = 0; x &lt; 3; x++) {
        for (y = 0; y &lt; 3; y++) {
            cout &lt;&lt; Feld[x][y] &lt;&lt; ' ';
        }
        cout &lt;&lt; '\n';
    }
    // an dieser Stelle, nach Verlassen der Schleife, ist x = 3 und y = 3 
    // Feld[3][3]  gibts nicht - weil ausserhalb der Feldgrenzen!

	x=1; y=2;  // wäre ok

	if (Feld[x][y] == Feld[x+1][y]) {
        cout &lt;&lt; &quot;Funktioniert&quot;;
    }

    cin.get();
    return 0;
}
</code></pre>
<p><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/1459689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459689</guid><dc:creator><![CDATA[willy]]></dc:creator><pubDate>Wed, 20 Feb 2008 18:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Thu, 21 Feb 2008 08:11:38 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antwort!<br />
Doch leider gibts für mich jetzt ein neues Problem: Jetzt kann ich durch diese Anweisung ja nicht mehr überprüfen, ob irgendwo in dem Array zweimal das gleiche Zeichen hintereinander kommt, sondern nur an einer (bzw. mehreren) bestimmten Stelle, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1459939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459939</guid><dc:creator><![CDATA[190208]]></dc:creator><pubDate>Thu, 21 Feb 2008 08:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Einträge in mehrdimensionalem Array &amp;quot;dynamisch&#x2F;variabel&amp;quot; vergleichen? on Thu, 21 Feb 2008 08:29:45 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Schaut in data ob in einer der &quot;Zeilen&quot; &quot;needed&quot; mal &quot;search&quot; hintereinander vorkommt (sollte es zumindest):</p>
<pre><code class="language-cpp">int data[10][10];
int needed = 3;
int search = 7;

bool success = false;
for(int x = 0; x &lt; 10; ++x){
  for(int y = 0; y &lt; 10 - needed; ++y){
    success = true;
    for(int k = 0; k &lt; needed; ++k){
      if (data[x][y+k] != search){
         success = false;
         break;
      }
    }
    if (success) break;
  }
  if (success) break;
}
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1459947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1459947</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 21 Feb 2008 08:29:45 GMT</pubDate></item></channel></rss>