<?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[Snake Ebenen]]></title><description><![CDATA[<p>Wie kann man in C++ zeitlich eine schleife schneller ablaufen lassen?<br />
Ginge es nicht über die Variable time_t time?</p>
<p>Wollte ein Snake ähnliches Programm schreiben, in denen die Ebenen einstellbar (die Schnelligkeit der Schlange) sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197276/snake-ebenen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 06:06:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197276.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Nov 2007 17:03:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 17:03:51 GMT]]></title><description><![CDATA[<p>Wie kann man in C++ zeitlich eine schleife schneller ablaufen lassen?<br />
Ginge es nicht über die Variable time_t time?</p>
<p>Wollte ein Snake ähnliches Programm schreiben, in denen die Ebenen einstellbar (die Schnelligkeit der Schlange) sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399891</guid><dc:creator><![CDATA[New-b]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 17:10:14 GMT]]></title><description><![CDATA[<p>New-b schrieb:</p>
<blockquote>
<p>Wie kann man in C++ zeitlich eine schleife schneller ablaufen lassen?</p>
</blockquote>
<p>Du könntest den Prozessor übertakten, dann müsste jede Schleife ein wenig schneller sein.</p>
<p>New-b schrieb:</p>
<blockquote>
<p>Ginge es nicht über die Variable time_t time?</p>
</blockquote>
<p>Doch, genau! Du musst eine Variable vom Typ time_t vor oder in der Schleife deklarieren, also bei mir gehts dann auf jeden Fall schneller!</p>
<p>*kopfschüttel* Wie willst du denn dein Programm schneller oder langsamer laufen lassen? Das, was du tun kannst, ist, künstliche Pausen in dein Programm einzubauen, z.B. mit Sleep. Je nachdem, welche Geschwindigkeit du brauchst, kannst du die Pause länger oder kürzer machen. Normalerweise lässt man sowas in Zeitschritten ablaufen, in einem Zeitschritt bewegt sich die Schlange eine Einheit weiter und du hast X Zeitschritte pro Sekunde. Die heutigen Prozessoren sind aber relativ schnell, also musst du eine Pause einbauen, sonst hast du 100000 Zeitschritte pro Sekunde. Also kannst du nach jedem Zeitschritt eine Pause von einer zehntel Sekunde oder so einbauen. Soll sich die Schlange schneller bewegen, machst du die Pause kürzer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399893</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:10:14 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 17:09:28 GMT]]></title><description><![CDATA[<p>Boring</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399895</guid><dc:creator><![CDATA[New-c]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 17:14:52 GMT]]></title><description><![CDATA[<p>Ich wollte auch nicht das Programm schneller ablaufen lassen.</p>
<p>Sorry, Ausdrucksfehler.</p>
<p>Ich weiß ist langweilig. Aber man will nicht aus der Übung kommen. Beim Zivildienst 12 Stunden Bereitschaft kann schon langweilig sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399899</guid><dc:creator><![CDATA[New-b]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:14:52 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 17:26:12 GMT]]></title><description><![CDATA[<p>Tut mir auch Leid, dass mein Post eben nicht besonders freundlich war <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="😞"
    /> Bin auch eben erst heimgekommen und war total platt..</p>
<p>Aber war's halbwegs verständlich oder hilfreich? Sonst müsstest du mal zeigen, wie deine Haupt-Schleife oder dein Konzept aussieht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1399905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399905</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 08 Nov 2007 17:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 18:48:46 GMT]]></title><description><![CDATA[<p>@New-c:<br />
Genau wegen solcher Beiträge bin ich absolut dafür das Gäste hier keine Schreibrechte haben. Dann können solche Trottel wie du nichts mehr schreiben, sind doch zu dumm um sich zu registrieren...</p>
<p>Zum Thread:<br />
Das Problem bei einer solchen Implementierung ist, dass die Geschwindigkeit dann immer vom Prozessor abhängig ist. Willst du z.B. Highscores machen, lässt man seinen PC mit einer Softwarebremse laufen und die Fairness ist dahin.</p>
<p>Edit: ich weiß auch nicht was ich gerade geschrieben habe, wenn du das so machst wie Badestand das beschrieben hat, gibts keine Probleme in der Hinsicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399935</guid><dc:creator><![CDATA[Tobias W]]></dc:creator><pubDate>Thu, 08 Nov 2007 18:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 18:59:15 GMT]]></title><description><![CDATA[<p>Orientierung an C Programmieren von Anfang (Erlenkötter). Zur Win-Api.</p>
<p>Hier der Schleifenaufbau:</p>
<pre><code class="language-cpp">// &quot;Die Test-Hauptschleife&quot; ob time funktioniert

for(x=fenster.dwSize.X;x&gt;=69;x--){ 
    position.X=x;
    position.Y=12;
    SetConsoleCursorPosition(console,position);
    WriteConsoleOutputCharacter(console,&amp;block,1,position,&amp;dummy);
    time(&amp;jetzt);
    while(difftime(time(NULL),jetzt)&lt;1);
    position.X=x+3; //+a // hochzählvariable für gefressene Teile
    position.Y=12;
    SetConsoleCursorPosition(console,position);
    WriteConsoleOutputCharacter(console,&amp;blank,1,position,&amp;dummy);
    }
</code></pre>
<p>Schleife wird über While Ausdruck nicht schneller. Wahrscheinlich falscher Ansatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399940</guid><dc:creator><![CDATA[New-b]]></dc:creator><pubDate>Thu, 08 Nov 2007 18:59:15 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 20:47:16 GMT]]></title><description><![CDATA[<p>Eventuell sind die Konsole-Funktionen seeehr langsam? Was passiert denn, wenn du die while-Schleife rausnimmst? Die wartet nämlich glaubich auch nur eine Millisekunde.<br />
Ansonsten könntest du die x-Position der Schlange schneller hochzählen?</p>
<p>edit: Ach, ich Trottel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Was machst du denn mit dem <code>position.X = x;</code> ? Du solltest die Position der Schlange unabhängig von der Schleifen-&quot;x&quot;-Variable verändern!<br />
Wie wärs so:?</p>
<pre><code class="language-cpp">position.X = 0;
position.Y = 12;
for ( int i=0; i&lt;70; i++ )
{
    // Zeichnen
    SetConsoleCursorPosition(console,position);
    WriteConsoleOutputCharacter(console,&amp;block,1,position,&amp;dummy);

    // Gewisse Zeit abwarten
    time( &amp;jetzt );
    // Für &quot;sonstwas&quot; irgendeinen Zahlenwert einsetzen, evtl rumprobieren
    while ( difftime( time(NULL), jetzt) ) &lt; sonstwas )
        ; // In der Schleife nix machen, ist so deutlicher als wenn das Semikolon am Ende der while-Schleife ist

    // Schlange weiter nach rechts setzen
    position.X += 1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1400016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400016</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 08 Nov 2007 20:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Thu, 08 Nov 2007 21:27:46 GMT]]></title><description><![CDATA[<p>also schleife an sich kannst nicht schneller machen als sie ist, ausser durch codeoptimierung. Was du brauchst ist nen realtime bezug über die zeit was halt gezeigt wurde von Strand. Bei &quot;sonstwas&quot; setzt wie gesagt zahlenwert ein, wobei ein kleiner wert bedeutet das die schlange schnell schlängelt und großer wert halt langsam. Daher geschwindigkeit der schleife lässt sich nur erhöhen wenn der ausführbare code darin weniger wird, im gegensatz zum verlangsamen das geht immer^^, und das auch vielen wegen *g</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400045</guid><dc:creator><![CDATA[oelsni]]></dc:creator><pubDate>Thu, 08 Nov 2007 21:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Fri, 09 Nov 2007 17:16:29 GMT]]></title><description><![CDATA[<p>Tobias W schrieb:</p>
<blockquote>
<p>@New-c:<br />
Genau wegen solcher Beiträge bin ich absolut dafür das Gäste hier keine Schreibrechte haben. Dann können solche Trottel wie du nichts mehr schreiben, sind doch zu dumm um sich zu registrieren...</p>
<p>Zum Thread:<br />
Das Problem bei einer solchen Implementierung ist, dass die Geschwindigkeit dann immer vom Prozessor abhängig ist. Willst du z.B. Highscores machen, lässt man seinen PC mit einer Softwarebremse laufen und die Fairness ist dahin.</p>
<p>Edit: ich weiß auch nicht was ich gerade geschrieben habe, wenn du das so machst wie Badestand das beschrieben hat, gibts keine Probleme in der Hinsicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Da sagt ja der Richtige, dass ich dumm bin.<br />
Der noch nicht einmal weiß was er pappelt. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400460</guid><dc:creator><![CDATA[new-c]]></dc:creator><pubDate>Fri, 09 Nov 2007 17:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Fri, 09 Nov 2007 20:36:30 GMT]]></title><description><![CDATA[<p>Leute will niemanden auf die füße treten aber denke nicht das sowas hier von nöten ist. new c dein beitrag war nicht wirklich hilfreich und von tobias auch nicht. steht einfach drüber fertig, ist doch nicht schwer sich ein wenig sowas zu verkneifen, denke ich, oder liege ich da so falsch. ich hoffe nicht sonst wäre das echt schade.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400562</guid><dc:creator><![CDATA[oelsni]]></dc:creator><pubDate>Fri, 09 Nov 2007 20:36:30 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Ebenen on Sat, 10 Nov 2007 16:11:36 GMT]]></title><description><![CDATA[<p>@ NEW-C bzw. Badestrand:</p>
<p>Habe jetzt die While Schleife weggelassen.<br />
Cool. Es klappt. Habe jetzt lediglich mit Sleep rumprobiert.</p>
<p>Läuft jetzt je nach Zahlenwerten für Sleep schneller o. langsamer. Unfähr wäre Sleep(1), hehe.</p>
<pre><code>position.X=0;
    position.Y=12;
    for(x=0;x&lt;75;x++){      
    SetConsoleCursorPosition(console,position);
    WriteConsoleOutputCharacter(console,&amp;block,1,position,&amp;dummy);
    time(&amp;jetzt);
    Sleep(50);
    position.X += 1;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1401001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401001</guid><dc:creator><![CDATA[New-b]]></dc:creator><pubDate>Sat, 10 Nov 2007 16:11:36 GMT</pubDate></item></channel></rss>