<?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[wert einer koordinate]]></title><description><![CDATA[<p>halle leute</p>
<p>frohes neus jahr!</p>
<p>ich bin auf der suche nach einer möglichkeit einer koordinate in der Konsole einen wert bzw. ein Zeichen zuzuweisen.</p>
<p>wie an eine bestimmt kooardinate ein zeichen setze weiß ich aber ich will anschließend z.b. den von x1,y1 mit x2,y2 vergleichen</p>
<p>Vielen dank im Voraus</p>
<p>greetz isi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279915/wert-einer-koordinate</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 09:03:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279915.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Jan 2011 07:56:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 07:56:38 GMT]]></title><description><![CDATA[<p>halle leute</p>
<p>frohes neus jahr!</p>
<p>ich bin auf der suche nach einer möglichkeit einer koordinate in der Konsole einen wert bzw. ein Zeichen zuzuweisen.</p>
<p>wie an eine bestimmt kooardinate ein zeichen setze weiß ich aber ich will anschließend z.b. den von x1,y1 mit x2,y2 vergleichen</p>
<p>Vielen dank im Voraus</p>
<p>greetz isi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003007</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Thu, 06 Jan 2011 07:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 08:08:49 GMT]]></title><description><![CDATA[<p>Am sinnvollsten ist es wahrscheinlich, wenn du alle Zeichen, die du auf der Konsole ausgibst, selbst in einem Array speicherst. Dann kannst du vergleichen, was du willst, und brauchst nicht darüber nachzudenken, wie du angezeigte Zeichen wieder von der Konsole auslesen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003012</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 06 Jan 2011 08:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 08:46:04 GMT]]></title><description><![CDATA[<p>vielen dank<br />
das hat mir schon sehr viel weiter geholfen</p>
<p>nun hab ich nur noch ein problem<br />
und zwar lasse ich mit w,a,s,d ein zeichen durch dir konsole bewegen</p>
<p>jetzt will ich wissen wie ich das machen soll das wenn an der stelle wo sich mein zeichen hinbewegt ein anderer wert aus dem array dass dann halt ne meldung kommt</p>
<p>wie ich das machen soll ist mir noch ein rätsel zwar kann ich ja zwei werte von verschieden positionen vergleichen nicht jedoch wenn die aufeinander treffen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003020</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Thu, 06 Jan 2011 08:46:04 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 08:52:30 GMT]]></title><description><![CDATA[<p>Wenn w gedrückt wurde, weißt du ja, dass deine Spielfigur nach oben bewegt werden soll. Also vergleiche einfach <em>vor</em> der Bewegung der Figur die Figur mit dem darüber liegenden Feld.</p>
<p>Eine andere Möglichkeit wäre, im Array, dass dein Spielfeld beinhaltet, nicht die Spielfigur selbst zu speichern. So hättest du im Array immer das komplette Spielfeld, und halt ein extra Wertepaar für die Koordinaten der Spielfigur. Das würde dir erlauben, die Figur auch mit dem &quot;darunter liegenden&quot; Feld zu vergleichen. Außerdem könnte das Feld beibehalten werden, wenn die Figur es wieder verlässt.</p>
<p>Wenn du es für sinnvoll hältst und noch weitere Fragen hast, kannst du ja mal ein wenig Code zeigen. Dann könnte man genauer darauf eingehen und vielleicht noch weitere Tipps geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003024</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 06 Jan 2011 08:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 09:07:26 GMT]]></title><description><![CDATA[<p>okay ehm also hier hab ich ma den code komplett wie er bis jetzt is<br />
(die beiden funktionen hab ich so da reingeschrieben weil ich nen fehler beim einbinden der bibliotek hatte)<br />
das ganze soll später ma auf ein snake hinauslaufen<br />
das prinzip mit dem überliegenden feld hab ich teilweise verstanden<br />
nur wie du ja siehst bin ich einfach an eine stelle gesprungen und hab da ein &quot;o&quot; gesetz.. ich verstehe halt nicht wir ich dem sagen kann schaue an die stelle (5,6) und checke ob da c[1] vorliegt</p>
<p>vielen dank auf jeden fall für das interesse <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>
<pre><code>#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;windows.h&gt;

using namespace std;

void gotoxy(short x, short y);
void clreol();
void bewegen(int taste, int ix,int yps,char c[]);
void geruest(char c[]);

int main()
{

    int taste;
    int ix=1;
    int yps=1;
    char c[1000];

  bewegen(taste,ix,yps,c);

    return 0;
}
void gotoxy ( short x, short y )
{
  COORD coord = {x, y};
  SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}

void clreol()
{
      CONSOLE_SCREEN_BUFFER_INFO csbi;
  HANDLE                     hOutput;
  DWORD                      dwWritten;

    if(INVALID_HANDLE_VALUE == (hOutput = GetStdHandle(STD_OUTPUT_HANDLE)))
        return;
    if(!GetConsoleScreenBufferInfo(hOutput, &amp;csbi))
        return;

    FillConsoleOutputAttribute(hOutput, csbi.wAttributes, (csbi.dwSize.X - csbi.dwCursorPosition.X), csbi.dwCursorPosition, &amp;dwWritten);
    FillConsoleOutputCharacter(hOutput, TEXT(' '), (csbi.dwSize.X - csbi.dwCursorPosition.X), csbi.dwCursorPosition, &amp;dwWritten);
    SetConsoleCursorPosition(hOutput, csbi.dwCursorPosition);

}

void bewegen(int taste,int ix,int yps,char c[])
{
    c[0]='*';
    for (int i=0;i&lt;100000;++i)
    {
        geruest(c);
        taste=getch();
//////W
    if (taste==119)
    {
        gotoxy(ix,yps);
        clreol();
        if(yps&gt;1)
        {
        yps-=1;
        gotoxy(ix,yps);
        }
        if(yps&lt;1)
        {
            gotoxy(ix,yps);
            yps-=yps;
        }
        cout&lt;&lt;c[0];

    }

//////
    if (taste==115)
    {

         gotoxy(ix,yps);
        clreol();
        if(yps&lt;14)
        {
        yps+=1;
        gotoxy(ix,yps);

        }
        if(yps&lt;=15)
        {
            gotoxy(ix,yps);
        }
        cout&lt;&lt;c[0];
    }
///////a
        if (taste==97)
    {
        gotoxy(ix,yps);
        clreol();
        if(ix&gt;=1)
        {ix-=1;
        gotoxy(ix,yps);
        }
        if(ix==0)
        {
            ix=25;
            gotoxy(ix,yps);
        }
      cout&lt;&lt;c[0];
    }
/////////////d
            if (taste==100)
    {
        gotoxy(ix,yps);
        clreol();
        if(ix&lt;26)
        {
        ix+=1;
        gotoxy(ix,yps);
        }
        if(ix&gt;=26)
        {
            ix=1;
            gotoxy(ix,yps);
        }
        if(ix&gt;=1)
        {
        gotoxy(ix,yps);
        }
        cout&lt;&lt;c[0];
    }
    if(c)
    }
}

void geruest(char c[])
{
    c[1]='o';
    for(int i=0;i&lt;=26;++i)
    {
        gotoxy(i,0);
        cout&lt;&lt;&quot;X&quot;;
    }

  for(int i=0;i&lt;=26;++i)
    {
        gotoxy(i,15);
        cout&lt;&lt;&quot;X&quot;;
    }

 for(int k=0;k&lt;16;++k)
 {
     gotoxy(0,k);
     cout&lt;&lt;&quot;X&quot;;
 }

 for(int o=0;o&lt;16;++o)
 {
     gotoxy(26,o);
     cout&lt;&lt;&quot;X&quot;;
 }

 gotoxy(5,6);
 cout&lt;&lt;c[1];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2003032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003032</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Thu, 06 Jan 2011 09:07:26 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 09:19:54 GMT]]></title><description><![CDATA[<p>Schon mal 2 Dinge vorweg:</p>
<p>- in Zeile 21 übergibst du der Funktion die Variable taste, die ist aber gar nicht initialisiert, hat also keinen gültigen Wert (bzw. irgendwas, was halt zufällig an der Stelle im Speicher steht). Weise der Variablen also irgendeinen Wert zu (z.B. 0). Da du vermutlich mit dem Visual Studio arbeitest, hättest du eigentlich eine Fehlermeldung bzw. Warnung bekommen müssen. Kann es sein, dass du dein Programm nicht als Debug-Version erstellst? Das solltest du unbedingt tun!</p>
<p>- Anstatt taste mit 119 zu vergleichen, solltest du lieber gleich mit 'w' vergleichen. Das ist vom Ergebnis her gleich, erhöht aber die Lesbarkeit deines Codes. Dann kannst du dir auch den Kommentar sparen, dass hier mit w verglichen wird.</p>
<p>Ok, dann schau ich es mir mal genauer an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003042</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 06 Jan 2011 09:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 09:44:57 GMT]]></title><description><![CDATA[<p>okay ehm also hier hab ich ma den code komplett wie er bis jetzt is<br />
(die beiden funktionen hab ich so da reingeschrieben weil ich nen fehler beim einbinden der bibliotek hatte)<br />
das ganze soll später ma auf ein snake hinauslaufen<br />
das prinzip mit dem überliegenden feld hab ich teilweise verstanden<br />
nur wie du ja siehst bin ich einfach an eine stelle gesprungen und hab da ein &quot;o&quot; gesetz.. ich verstehe halt nicht wir ich dem sagen kann schaue an die stelle (5,6) und checke ob da c[1] vorliegt</p>
<p>vielen dank auf jeden fall für das interesse <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>
<pre><code>#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;windows.h&gt;

using namespace std;

void gotoxy(short x, short y);
void clreol();
void bewegen(int taste, int ix,int yps,char c[]);
void geruest(char c[]);

int main()
{

    int taste;
    int ix=1;
    int yps=1;
    char c[1000];

  bewegen(taste,ix,yps,c);

    return 0;
}
void gotoxy ( short x, short y )
{
  COORD coord = {x, y};
  SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}

void clreol()
{
      CONSOLE_SCREEN_BUFFER_INFO csbi;
  HANDLE                     hOutput;
  DWORD                      dwWritten;

    if(INVALID_HANDLE_VALUE == (hOutput = GetStdHandle(STD_OUTPUT_HANDLE)))
        return;
    if(!GetConsoleScreenBufferInfo(hOutput, &amp;csbi))
        return;

    FillConsoleOutputAttribute(hOutput, csbi.wAttributes, (csbi.dwSize.X - csbi.dwCursorPosition.X), csbi.dwCursorPosition, &amp;dwWritten);
    FillConsoleOutputCharacter(hOutput, TEXT(' '), (csbi.dwSize.X - csbi.dwCursorPosition.X), csbi.dwCursorPosition, &amp;dwWritten);
    SetConsoleCursorPosition(hOutput, csbi.dwCursorPosition);

}

void bewegen(int taste,int ix,int yps,char c[])
{
    c[0]='*';
    for (int i=0;i&lt;100000;++i)
    {
        geruest(c);
        taste=getch();
//////W
    if (taste==119)
    {
        gotoxy(ix,yps);
        clreol();
        if(yps&gt;1)
        {
        yps-=1;
        gotoxy(ix,yps);
        }
        if(yps&lt;1)
        {
            gotoxy(ix,yps);
            yps-=yps;
        }
        cout&lt;&lt;c[0];

    }

//////
    if (taste==115)
    {

         gotoxy(ix,yps);
        clreol();
        if(yps&lt;14)
        {
        yps+=1;
        gotoxy(ix,yps);

        }
        if(yps&lt;=15)
        {
            gotoxy(ix,yps);
        }
        cout&lt;&lt;c[0];
    }
///////a
        if (taste==97)
    {
        gotoxy(ix,yps);
        clreol();
        if(ix&gt;=1)
        {ix-=1;
        gotoxy(ix,yps);
        }
        if(ix==0)
        {
            ix=25;
            gotoxy(ix,yps);
        }
      cout&lt;&lt;c[0];
    }
/////////////d
            if (taste==100)
    {
        gotoxy(ix,yps);
        clreol();
        if(ix&lt;26)
        {
        ix+=1;
        gotoxy(ix,yps);
        }
        if(ix&gt;=26)
        {
            ix=1;
            gotoxy(ix,yps);
        }
        if(ix&gt;=1)
        {
        gotoxy(ix,yps);
        }
        cout&lt;&lt;c[0];
    }
    if(c)
    }
}

void geruest(char c[])
{
    c[1]='o';
    for(int i=0;i&lt;=26;++i)
    {
        gotoxy(i,0);
        cout&lt;&lt;&quot;X&quot;;
    }

  for(int i=0;i&lt;=26;++i)
    {
        gotoxy(i,15);
        cout&lt;&lt;&quot;X&quot;;
    }

 for(int k=0;k&lt;16;++k)
 {
     gotoxy(0,k);
     cout&lt;&lt;&quot;X&quot;;
 }

 for(int o=0;o&lt;16;++o)
 {
     gotoxy(26,o);
     cout&lt;&lt;&quot;X&quot;;
 }

 gotoxy(5,6);
 cout&lt;&lt;c[1];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2003053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003053</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Thu, 06 Jan 2011 09:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 09:54:09 GMT]]></title><description><![CDATA[<p>Die for-Schleife mit 100000 Durchläufen ist wohl aus der Not heraus geboren. <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="😉"
    /> Stattdessen nimm doch lieber eine while-Schleife, die solange läuft bis der Benutzer ESC (ASCII 27) drückt. Das kann dann so aussehen:</p>
<pre><code class="language-cpp">while(taste!=27)  //für Escape gibts auch ein tolles define, dass mit aber gerade nicht einfallen will. Schau bitte mal selber danach.
</code></pre>
<p>Du solltest auch mehr mit Funktionen arbeiten. Kleines Beispiel: anstatt immer gotoxy(ix,yps) und cout&lt;&lt;c[0] an vielen Stellen des Programms auszuführen, könnte es eine Funktion DruckeSpieler geben, die diese beiden Anweisungen ausführt. So vermeidet man Redundanz. Dein Code bietet noch viele weitere Möglichkeiten, Redundanz zu eliminieren.</p>
<p>Na ja, ich will jetzt nicht den ganzen Code umstricken. Das solltest du lieber selbst machen. Jedenfalls könnte es in etwa so aussehen:</p>
<p>- Es gibt ein Array, dass das ganze Spielfeld beinhaltet (hier können auch die auszusammelnden 'o'-Zeichen enthalten sein). Die Größe ist fest und ergibt sich durch Länge mal Breite des Spielfeldes (jedenfalls nicht 1000!).</p>
<p>- Die Funktion geruest (dann vielleicht anders benannt) gibt in jedem Schleifendurchlauf das gesamte Spielfeld aus. Hier sind nur verschachtelte 2 Schleifen nötig, die das Array auslesen und die einzelnen Zeichen per cout auf den Bildschirm bringen.</p>
<p>- Die Spielfigur wird ebenfalls in jedem Durchlauf ausgegeben. Ihre Koordinaten werden gesondert gespeichert. Hier könnte man ein eigenes kleines struct nehmen, oder die COORD-Struktur der WinAPI, oder std::pair, oder...</p>
<p>- Jedesmal, wenn sich die Figur bewegt, wird geprüft, ob auf der neuen Position der Figur ein 'o' ist. Ist dem so, folgen weitere Schritte, die wir aber erstmal weglassen (z.B.: Schlange wird länger, hier wird es aber etwas komplizierter). In jedem Fall wird an dieser Position im Spielfeld-Array ' ' geschrieben, um das 'o' zu löschen (es ist ja schließlich gerade gefressen worden).</p>
<p>- Es müssen regelmäßig neue 'o' auf dem Spielfeld gestreut werden. Das könntest du der Einfachheit halber erstmal alle x Schleifendurchläufe machen oder so. Später könnte man z.B. über einen Thread nachdenken, der parallel läuft und alle x Sekunden ein neues 'o' an einer zufälligen Position auf dem Spielfeld setzt.</p>
<p>Versuch erst mal, einige dieser Punkte umzusetzen. Priorität haben die Punkte Spielfeld-Array, Ausgabe des Arrays und dann 'o' auffressen. Das Streuen von neuen 'o' stellen wir erst mal hinten an. Bei Schwierigkeiten sehen wir dann weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003054</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 06 Jan 2011 09:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to wert einer koordinate on Thu, 06 Jan 2011 10:42:16 GMT]]></title><description><![CDATA[<p>okay viel dank nochmal</p>
<p>ich werde mich bei zeit dran und melde mich dann <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>greet isi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2003067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2003067</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Thu, 06 Jan 2011 10:42:16 GMT</pubDate></item></channel></rss>