<?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 Problem wie bewegen?]]></title><description><![CDATA[<p>Hallo<br />
Ich probiere ein snake spiel zu programmieren aber weiß nicht wie ich die schlange bewegen soll.<br />
Das hab ich schon versucht:<br />
[code]<br />
bool exit = false;<br />
while(!exit)<br />
{<br />
if(kbhit()) // Nur wenn auch eine Taste gedrückt ist<br />
{<br />
char c = getch();<br />
switch(c)<br />
{<br />
case 'w':<br />
x--;<br />
break;</p>
<p>case 'a':<br />
y--;<br />
break;</p>
<p>case 's':<br />
y++;<br />
break;</p>
<p>case 'd':<br />
y--;</p>
<p>break;</p>
<p>}<br />
}<br />
Sleep(20);</p>
<p>}</p>
<p>und noch sämtliche andere aber ich bekomms nicht hin<br />
kann mir vlt einer helfen?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305724/snake-problem-wie-bewegen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 14:29:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305724.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Jul 2012 15:38:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Fri, 06 Jul 2012 15:38:18 GMT]]></title><description><![CDATA[<p>Hallo<br />
Ich probiere ein snake spiel zu programmieren aber weiß nicht wie ich die schlange bewegen soll.<br />
Das hab ich schon versucht:<br />
[code]<br />
bool exit = false;<br />
while(!exit)<br />
{<br />
if(kbhit()) // Nur wenn auch eine Taste gedrückt ist<br />
{<br />
char c = getch();<br />
switch(c)<br />
{<br />
case 'w':<br />
x--;<br />
break;</p>
<p>case 'a':<br />
y--;<br />
break;</p>
<p>case 's':<br />
y++;<br />
break;</p>
<p>case 'd':<br />
y--;</p>
<p>break;</p>
<p>}<br />
}<br />
Sleep(20);</p>
<p>}</p>
<p>und noch sämtliche andere aber ich bekomms nicht hin<br />
kann mir vlt einer helfen?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230644</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Fri, 06 Jul 2012 15:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Fri, 06 Jul 2012 15:54:15 GMT]]></title><description><![CDATA[<p>1. Du hast das Zeichnen deiner Schlange vergessen. Wo/Wie machst du das denn? Wenn du in jedem Schleifendurchlauf deine Schlange an Position x,y zeichnest, dann sollte das schon klappen.</p>
<p>2. Mit so einem switch kann man das schon machen, aber du hast deine Koordinaten ein wenig durcheinandergewürfelt. Mit w gehst du nach links, mit a nach oben...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230648</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 06 Jul 2012 15:54:15 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Fri, 06 Jul 2012 16:27:22 GMT]]></title><description><![CDATA[<p>Also ein Frame wird schon in einer großen Schleife berechnet. D.h. pro Frame musst du alles berechnen.</p>
<p>Normalerweise ist die Schleife, ganz grob, nach dem guten alten EVA Prinzip aufgebaut. Also:</p>
<p>Eingabe -&gt; Verarbeitung -&gt; Ausgabe,</p>
<p>wasd -&gt; Schlange bewegen, Apfel erscheinen lass, etc. -&gt; Zeichnen.</p>
<p>Du brauchst also die Benutzereingaben, die du so eig. schon hast (prüf nochmal die Tasten, manche machen das selbe), dann eine Funktion, die die Schlange bewegt und sachen erscheinen lässt etc. und eine Funktion, die dann alles ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230662</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Fri, 06 Jul 2012 16:27:22 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Sat, 07 Jul 2012 11:13:23 GMT]]></title><description><![CDATA[<p>Ok vielen dank</p>
<p>Hab jetz ein neues Problem <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="😃"
    /><br />
Wie geb ich nun die schlange auf dem Feld aus?<br />
Das Feld und die schlange sind ja 2d arrays aber wie verknüpfe ich die beiden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230809</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Sat, 07 Jul 2012 11:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Sat, 07 Jul 2012 13:35:59 GMT]]></title><description><![CDATA[<p>Ich würde die schlange in kein array packen, da ihre laenge variabel ist wäre ein vector besser.</p>
<p>Ansonsten bastelst du dir eine schlaife, die sooft durchlaufen wird wie die schlange lang ist, und setzt für jedes stück schlange das entsprechende feldelement um.</p>
<p>Bzw behandelst du kedes feldelemt einzeln. Sprich, du prüfst das element(0,0); was ist da? Schlange? Apfel? Nix? Setze entsprechendes zeichen! Prüfe element (1,0)... Brauchst hier 2 for schleifen für die reihen und spalten und eine abfragekette, die pro feld einmal durchlafen werden muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230830</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Sat, 07 Jul 2012 13:35:59 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Sat, 07 Jul 2012 17:17:26 GMT]]></title><description><![CDATA[<p>Ich verzweifel noch daran!!!!<br />
Hab jetzt iwi 2 schlangen kann auch beide bewegen</p>
<p>[code]<br />
#include &lt;iostream&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;windows.h&gt;</p>
<p>using namespace std;</p>
<p>struct snake<br />
{<br />
int X;<br />
int Y;<br />
};</p>
<p>snake pos[1];<br />
const int breite = 40;<br />
const int hoehe = 20;<br />
char Feld [breite][hoehe];<br />
int x;<br />
int y;<br />
char schlange[40][20];</p>
<p>int main()<br />
{<br />
pos[0].X = 1;<br />
pos[0].Y = 1;</p>
<p>bool exit = false;<br />
while(!exit)<br />
{<br />
if(kbhit()) // Nur wenn auch eine Taste gedrückt ist<br />
{<br />
char c = getch();<br />
switch(c)<br />
{<br />
case 'w':<br />
pos[0].X-- ;<br />
break;</p>
<p>case 'a':<br />
pos[0].Y--;<br />
break;</p>
<p>case 's':<br />
pos[0].X++;<br />
break;</p>
<p>case 'd':<br />
pos[0].Y++;<br />
break;</p>
<p>}</p>
<p>}<br />
Sleep(1);<br />
system(&quot;cls&quot;);</p>
<p>for(x = 0; x &lt; hoehe; x++)<br />
{<br />
cout &lt;&lt; endl;</p>
<p>for( y = 0; y &lt; breite; y++)<br />
{</p>
<p>Feld [x][y] = '*';<br />
Feld [pos[0].X][pos[0].Y] = 'O';<br />
Feld [pos[0].X][pos[0].Y] == 1;<br />
cout &lt;&lt; Feld [x][y];<br />
}</p>
<p>}<br />
}</p>
<p>cin.get();<br />
return 0;<br />
}</p>
<p>ich weiß ich bin noch nicht so weit will aber erstmal ein Feld haben wo man eine schlange bzw. O bewegen kann <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/2230880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230880</guid><dc:creator><![CDATA[lolipoplol]]></dc:creator><pubDate>Sat, 07 Jul 2012 17:17:26 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Sat, 07 Jul 2012 18:02:44 GMT]]></title><description><![CDATA[<p>Da Du für Windows schreiben willst, benutze für die Ausgabe der Zeichen die WinAPI. Damit kannst Du ganz gezielt Positionen in der Konsole beschreiben, bzw. löschen. Das erspart Dir das Löschen des Bildschirmes und Neuzeichnen des ganzen Feldes bei jedem Frame(Schritt).<br />
Funktionen dafür findest Du ein paar Stationen weiter oben im Konsoleforum zuhauf.<br />
Dann verwalte Deine Schlange in einer Liste. Speichere in dieser Liste Positionen bestehend aus x und y Position. Wenn Deine Schlange sich nun vorwärts bewegen soll, bestimme die Richtung, kopiere das erste Listelement und berichtige die Position mit Hilfe der ermittelten Richtung, gib den Kopf auf der neuen Position aus und füge das kopierte und berichtigte Element als neues erstes Element in Deine Liste ein.<br />
Soll die Schlange gleichzeitig wachsen, bist Du schon fertig, ansonsten nimm nun das letzte Listelement, lösche die entsprechende Konsolenposition und entferne das Element aus der Liste. -- Fertig!<br />
So manipulierst Du maximal zwei Positionen auf der Konsole: den neuen Platz für den Schlangenkopf, und den alten Platz des Schlangenendes. Das verhindert übrigens auch Bildschirmflimmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230892</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 07 Jul 2012 18:02:44 GMT</pubDate></item><item><title><![CDATA[Reply to Snake Problem wie bewegen? on Sat, 07 Jul 2012 18:17:23 GMT]]></title><description><![CDATA[<p>lolipoplol:</p>
<p>schließ bitte auch deine code tags wieder</p>
<p>sonst wird aus</p>
<pre><code>code blabla
</code></pre>
<p>nur ein [code]code</p>
<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="😉"
    /> einfach nochmal auf den butten klicken, der hat dann auch so ein sternchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2230895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2230895</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Sat, 07 Jul 2012 18:17:23 GMT</pubDate></item></channel></rss>