<?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]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade aus folgendem Programm von unserem Prof schlau zu werden</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;

using namespace std;

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; &lt;&lt; endl;

	system(&quot;pause&quot;);

	return 0;

}	

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

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

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

	m[r][c] = 'x';	// Punkt als besucht markieren

	system(&quot;cls&quot;);

	// Labyrinth ausgeben
	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' )	// wenn Bewegung hoch möglich
			mazeTraverse( m, r-1, c );	// hochbewegen

		if ( m[r-1][c] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// wenn Bewegung runter möglich
			mazeTraverse( m, r+1, c );	// runterbewegen

		if ( m[r+1][c] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// Wenn Linksbewegung möglich
			mazeTraverse( m, r, c-1 );	// nach links bewegen

		if ( m[r][c-1] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// Wenn Rechtsbewegung möglich
			mazeTraverse( m, r, c+1 );	// nach rechts bewegen

		if ( m[r][c+1] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		return;
	}

}	// end function mazeTraverse
</code></pre>
<p>Mir sind eigentlich auch alle Schritte klar, bis auf dieser hier:</p>
<pre><code class="language-cpp">if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
</code></pre>
<p>Wozu ist dieses E, woher kommt es und wieso ist dort dieses cout das, wenn ich das programm laufen lasse nie ausgegeben wird? Wieso werden die Bewegungen damit verglichen?</p>
<p>Gruß</p>
<p>Gunnar</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170763/labyrinth</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 04:48:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170763.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Jan 2007 12:15:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Labyrinth on Fri, 19 Jan 2007 12:15:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuche gerade aus folgendem Programm von unserem Prof schlau zu werden</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;

using namespace std;

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; &lt;&lt; endl;

	system(&quot;pause&quot;);

	return 0;

}	

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

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

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

	m[r][c] = 'x';	// Punkt als besucht markieren

	system(&quot;cls&quot;);

	// Labyrinth ausgeben
	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' )	// wenn Bewegung hoch möglich
			mazeTraverse( m, r-1, c );	// hochbewegen

		if ( m[r-1][c] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r+1][c] == ' ' || m[r+1][c] == 'E' )	// wenn Bewegung runter möglich
			mazeTraverse( m, r+1, c );	// runterbewegen

		if ( m[r+1][c] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r][c-1] == ' ' || m[r][c-1] == 'E' )	// Wenn Linksbewegung möglich
			mazeTraverse( m, r, c-1 );	// nach links bewegen

		if ( m[r][c-1] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		if ( m[r][c+1] == ' ' || m[r][c+1] == 'E' )	// Wenn Rechtsbewegung möglich
			mazeTraverse( m, r, c+1 );	// nach rechts bewegen

		if ( m[r][c+1] == '.' || m[r][c+1] == 'E' ) //Überprüfen ob . getroffen

		    sum++; // Summe (der Ausgänge) hochzählen

		return;
	}

}	// end function mazeTraverse
</code></pre>
<p>Mir sind eigentlich auch alle Schritte klar, bis auf dieser hier:</p>
<pre><code class="language-cpp">if ( m[r][c] == 'E' )
	{
		cout &lt;&lt; &quot;\nsuccess!\n&quot;;
		return;
	}
</code></pre>
<p>Wozu ist dieses E, woher kommt es und wieso ist dort dieses cout das, wenn ich das programm laufen lasse nie ausgegeben wird? Wieso werden die Bewegungen damit verglichen?</p>
<p>Gruß</p>
<p>Gunnar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212603</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:15:14 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth on Fri, 19 Jan 2007 12:23:15 GMT]]></title><description><![CDATA[<p>Blind geraten: Vermutlich ist die Kennung 'E' für eine Erweiterung des Programms vorgesehen (wenn du bei dem E ankommst, hast du gewonnen). Jedenfalls werten alle anderen Abfragen das E als freies Feld (und als Kennzeichnung für einen Ausgang).</p>
<p>Aber am besten fragst du danach mal deinen Prof.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212607</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth on Fri, 19 Jan 2007 12:26:22 GMT]]></title><description><![CDATA[<p>I see.... aber wenn ich es lösche funktioniert es nicht mehr?</p>
<p>Edit: vergiss es funktioniert 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>
]]></description><link>https://www.c-plusplus.net/forum/post/1212608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212608</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth on Fri, 19 Jan 2007 12:32:13 GMT]]></title><description><![CDATA[<p>Aber eines noch...</p>
<p>was macht das:</p>
<pre><code class="language-cpp">while ( time(0) % 10 != update )
        ;    // warten

    if ( time( 0 ) % 10 == 9 )
        update = 0;
    else
        update = (time( 0 ) % 10) + 1;
</code></pre>
<p>Ist das dafür verantwortlich, ob das LAbyrinth neugestartet wird, oder fortgesetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212613</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:32:13 GMT</pubDate></item><item><title><![CDATA[Reply to Labyrinth on Fri, 19 Jan 2007 12:44:34 GMT]]></title><description><![CDATA[<p>ThaRealMatix schrieb:</p>
<blockquote>
<p>Aber eines noch...</p>
<p>was macht das:</p>
<pre><code class="language-cpp">while ( time(0) % 10 != update )
        ;    // warten
</code></pre>
</blockquote>
<p>Das ist eine Warteschleife, um den Programmablauf etwas auszubremsen (time() gibt die Sekunden seit 1.1.1970 zurück, update wird (siehe unten) als Zielvorgabe für die Zeit gesetzt.</p>
<blockquote>
<pre><code class="language-cpp">if ( time( 0 ) % 10 == 9 )
        update = 0;
    else
        update = (time( 0 ) % 10) + 1;
</code></pre>
</blockquote>
<p>Damit wird für den nächsten Schleifendurchlauf update neu gesetzt (effektiv auf &quot;jetzt plus 1 Sekunde&quot;).</p>
<p>Insgesamt bewirkt diese Konstruktion, daß du auch mitverfolgen kannst, wie sich das Programm durch das Labyrinth durchhangelt (setz den ganzen Block mal in /<em>...</em>/ und dann schau dir an, wie schnell das Programm arbeitet).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212620</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:44:34 GMT</pubDate></item></channel></rss>