<?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[Labyrinth - Weg mit x füllen aber x verschwindet]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Programm fertig:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;

using std::cout;

void mazeTraverse( char [][14], int, int );

int main()
{
	char maze[14][14] = 
	{
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' },
	{ '.','#','#','#','#','#','#','#','#','#','#','#','#','.' },
	{ '.','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ','#','.' },
	{ '.',' ',' ','#',' ','#',' ','#','#','#','#',' ','#','.' },
	{ '.','#','#','#',' ','#',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ','#','#','#',' ','#',' ',' ','.' },
	{ '.','#','#','#','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#','#',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#','#','#','#','#','#',' ','#','#','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#','.' },
	{ '.','#','#','#','#','#','#','#','#',' ','#','#','#','.' },
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' }
	};

	mazeTraverse( maze, 3, 1 );

	system(&quot;pause&quot;);

	return 0;

}	// end main

void mazeTraverse( char m[][14], int r, int c )
{
	static int update = time( 0 ) % 10;

	while ( time(0) % 10 != update )
		;	// wait

	if ( time( 0 ) % 10 == 9 )
		update = 0;
	else
		update = (time( 0 ) % 10) + 1;

	m[r][c] = 'x';	// mark spot visited

	system(&quot;cls&quot;);

	// print the maze
	for ( int row = 0; row &lt; 14; row++ )
	{
		for ( int column = 0; column &lt; 14; column++ )
			cout &lt;&lt; m[row][column];

		cout &lt;&lt; '\n';
	}

	if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
	else
	{
		if ( m[r-1][c] == ' ' || m[r-1][c] == 'E' )	// if can go up
			mazeTraverse( m, r-1, c );	// start going up

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// if can go down
			mazeTraverse( m, r+1, c );	// start going down

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// if can go left
			mazeTraverse( m, r, c-1 );	// start going left

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// if can go right
			mazeTraverse( m, r, c+1 );	// start going right

		m[r][c] = ' ';
		return;
	}

}	// end function mazeTraverse
</code></pre>
<p>Leider werden die gesetzten xe bei einem Weg, der begangen wurde aber gegen eine # führte wieder gelöscht. Was müsste ich tun, damit sie stehen bleiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170578/labyrinth-weg-mit-x-füllen-aber-x-verschwindet</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 04:41:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170578.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Jan 2007 15:40:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 15:40:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Programm fertig:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;

using std::cout;

void mazeTraverse( char [][14], int, int );

int main()
{
	char maze[14][14] = 
	{
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' },
	{ '.','#','#','#','#','#','#','#','#','#','#','#','#','.' },
	{ '.','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ','#','.' },
	{ '.',' ',' ','#',' ','#',' ','#','#','#','#',' ','#','.' },
	{ '.','#','#','#',' ','#',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ','#','#','#',' ','#',' ',' ','.' },
	{ '.','#','#','#','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#','#',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#','#','#','#','#','#',' ','#','#','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#','.' },
	{ '.','#','#','#','#','#','#','#','#',' ','#','#','#','.' },
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' }
	};

	mazeTraverse( maze, 3, 1 );

	system(&quot;pause&quot;);

	return 0;

}	// end main

void mazeTraverse( char m[][14], int r, int c )
{
	static int update = time( 0 ) % 10;

	while ( time(0) % 10 != update )
		;	// wait

	if ( time( 0 ) % 10 == 9 )
		update = 0;
	else
		update = (time( 0 ) % 10) + 1;

	m[r][c] = 'x';	// mark spot visited

	system(&quot;cls&quot;);

	// print the maze
	for ( int row = 0; row &lt; 14; row++ )
	{
		for ( int column = 0; column &lt; 14; column++ )
			cout &lt;&lt; m[row][column];

		cout &lt;&lt; '\n';
	}

	if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
	else
	{
		if ( m[r-1][c] == ' ' || m[r-1][c] == 'E' )	// if can go up
			mazeTraverse( m, r-1, c );	// start going up

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// if can go down
			mazeTraverse( m, r+1, c );	// start going down

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// if can go left
			mazeTraverse( m, r, c-1 );	// start going left

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// if can go right
			mazeTraverse( m, r, c+1 );	// start going right

		m[r][c] = ' ';
		return;
	}

}	// end function mazeTraverse
</code></pre>
<p>Leider werden die gesetzten xe bei einem Weg, der begangen wurde aber gegen eine # führte wieder gelöscht. Was müsste ich tun, damit sie stehen bleiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211464</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Wed, 17 Jan 2007 15:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 16:24:45 GMT]]></title><description><![CDATA[<p>Sie einfach nicht löschen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211494</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 16:43:12 GMT]]></title><description><![CDATA[<p>uhm also wenn mach ich das unbewussst? wo soll das denn passieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211515</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 17:23:20 GMT]]></title><description><![CDATA[<p>m[r][c] = ' ';</p>
<p>ist die letzte Anweisung vor dem return. Damit ersetzt Du sie durch ein leerzeichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211539</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 17 Jan 2007 17:23:20 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 17:43:14 GMT]]></title><description><![CDATA[<p>okay... danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Hm... könntest du mir vielleicht noch bei der Errechnung der Ausgänge helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich wollte es so lösen, dass halt beim auftreten auf einen Punkt sum hochgezählt wird.</p>
<p>Leider scheint das absolut nicht so zu funktionieren, wie ich es möchte <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=":-/"
      alt="😕"
    /></p>
<pre><code class="language-cpp">void mazeTraverse( char m[][14], int r, int c )
{
	static int update = time( 0 ) % 10;
	int sum=0;

	while ( time(0) % 10 != update )
		;	// wait

	if ( time( 0 ) % 10 == 9 )
		update = 0;
	else
		update = (time( 0 ) % 10) + 1;

	m[r][c] = 'x';	// mark spot visited

	system(&quot;cls&quot;);

	// print the maze
	for ( int row = 0; row &lt; 14; row++ )
	{
		for ( int column = 0; column &lt; 14; column++ )
			cout &lt;&lt; m[row][column];

		cout &lt;&lt; '\n';
	}

	if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
	else
	{
		if ( m[r-1][c] == ' ' || m[r-1][c] == 'E' )	// if can go up
			mazeTraverse( m, r-1, c );	// start going up

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// if can go down
			mazeTraverse( m, r+1, c );	// start going down

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// if can go left
			mazeTraverse( m, r, c-1 );	// start going left

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// if can go right
			mazeTraverse( m, r, c+1 );	// start going right

		if ( m[r][c+1] == '.')

		    sum++;
		cout &lt;&lt; &quot;Es gibt &quot; &lt;&lt; sum &lt;&lt; &quot;Ausgaenge&quot;;

		return;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1211546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211546</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Wed, 17 Jan 2007 17:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 17:49:17 GMT]]></title><description><![CDATA[<p>Das funktioniert so nicht, weil Du sum ja erst in der Funktion anlegst, jeder rekursive Aufruf hat seine eigene Variable. Du kannst die Variable entweder global anlegen, oder per Referenz mit an die Funktion übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211549</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 17 Jan 2007 17:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 19:51:35 GMT]]></title><description><![CDATA[<p>Ah .. -.- ^^</p>
<p>Hm.. seltsamerweise zählt er mir nun aber nur einen &quot;Ausgang&quot;, obwohl das x zu beiden hinläuft.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;

using std::cout;

int sum=0;

void mazeTraverse( char [][14], int, int );

int main()
{
	char maze[14][14] = 
	{
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' },
	{ '.','#','#','#','#','#','#','#','#','#','#','#','#','.' },
	{ '.','#',' ',' ',' ','#',' ',' ',' ',' ',' ',' ','#','.' },
	{ '.',' ',' ','#',' ','#',' ','#','#','#','#',' ','#','.' },
	{ '.','#','#','#',' ','#',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ','#','#','#',' ','#',' ',' ','.' },
	{ '.','#','#','#','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#','#',' ','#',' ','#',' ','#',' ','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','.' },
	{ '.','#','#','#','#','#','#',' ','#','#','#',' ','#','.' },
	{ '.','#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ','#','.' },
	{ '.','#','#','#','#','#','#','#','#',' ','#','#','#','.' },
	{ '.','.','.','.','.','.','.','.','.','.','.','.','.','.' }
	};

	mazeTraverse( maze, 3, 1 );

	cout &lt;&lt; &quot;Es gibt &quot; &lt;&lt; sum &lt;&lt; &quot;Ausgaenge&quot;;

	system(&quot;pause&quot;);

	return 0;

}	// end main

void mazeTraverse( char m[][14], int r, int c )
{
	static int update = time( 0 ) % 10;

	while ( time(0) % 10 != update )
		;	// wait

	if ( time( 0 ) % 10 == 9 )
		update = 0;
	else
		update = (time( 0 ) % 10) + 1;

	m[r][c] = 'x';	// mark spot visited

	system(&quot;cls&quot;);

	// print the maze
	for ( int row = 0; row &lt; 14; row++ )
	{
		for ( int column = 0; column &lt; 14; column++ )
			cout &lt;&lt; m[row][column];

		cout &lt;&lt; '\n';
	}

	if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
	else
	{
		if ( m[r-1][c] == ' ' || m[r-1][c] == 'E' )	// if can go up
			mazeTraverse( m, r-1, c );	// start going up

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// if can go down
			mazeTraverse( m, r+1, c );	// start going down

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// if can go left
			mazeTraverse( m, r, c-1 );	// start going left

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// if can go right
			mazeTraverse( m, r, c+1 );	// start going right

		if ( m[r][c+1] == '.')

		    sum++;

		return;
	}

}	// end function mazeTraverse
</code></pre>
<p>Die ausgabe sagt es gibt einen Ausgang, es müssten aber zwei sein, weil das x an zwei stellen auf einen Punkt treffen kann (und eigentlich auch müsste zumindestens werden alle wege &quot;vom x beschritten&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211606</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Wed, 17 Jan 2007 19:51:35 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Wed, 17 Jan 2007 22:14:57 GMT]]></title><description><![CDATA[<p>Die Abfrage vor dem sum++ sieht komisch aus. Du fragst damit ja das Feld nebendran ab oder so. Eventuell solltest Du das überarbeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211666</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 17 Jan 2007 22:14:57 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Thu, 18 Jan 2007 14:12:41 GMT]]></title><description><![CDATA[<p>Hm.. wenn ich sie mit den anderen &quot;glichsetze&quot; /halt weiterhin ein . anstatt ein Leerzeichen) kommt weiterhin das gleiche raus und mir gehen die Ideen aus.</p>
<p>Die abfrage muss doch sein, wenn er auf nen Puntk trifft dann zähle Summe hoch und er müsste zweimal auf einen Puntk treffen -.- Ich verstehs nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212058</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Thu, 18 Jan 2007 14:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Thu, 18 Jan 2007 14:23:00 GMT]]></title><description><![CDATA[<p>hmm du prüfst aber auch nur ob sich rechts ein Punkt befindet.<br />
Solltest du die drei anderen Richtungen nicht auch prüfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212067</guid><dc:creator><![CDATA[Pathfinder23]]></dc:creator><pubDate>Thu, 18 Jan 2007 14:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Thu, 18 Jan 2007 15:11:51 GMT]]></title><description><![CDATA[<p>Okay... gibt es noch eine Möglichkeit, den eingang nicht mitzählen zu löassen, ausser keine Überprüfung Links durchzuführen? wahrscheinlich nicht, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212106</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Thu, 18 Jan 2007 15:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Thu, 18 Jan 2007 18:05:53 GMT]]></title><description><![CDATA[<p>Was wäre wenn Du Eingänge und Ausgänge mit verschiedenen Symbolen kennzeichnest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212209</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 18 Jan 2007 18:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth - Weg mit x füllen aber x verschwindet on Thu, 18 Jan 2007 19:00:30 GMT]]></title><description><![CDATA[<p>Würde ich ja gerne, aber die aufgabenstellung lautet numal genau 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="😉"
    /></p>
<p>P.S. Wie könnte ich denn den Ausgängen ihre &quot;laufende Nummer&quot; zuordnen und ausgeben? So etwas hab ich noch nie gemacht und auch nicht in &quot;C++ lernen und professionell anwenden&quot; von Prinz gefunden? o.O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212232</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Thu, 18 Jan 2007 19:00:30 GMT</pubDate></item></channel></rss>