<?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[Hilfe in c++]]></title><description><![CDATA[<p>Also ich habe gestern angefangen ein bisschen mit c++ zu programmieren und bin so weit gut gekommen... nur habe ich jetzt ein problem:</p>
<p>main.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;windows.h&quot;
#include &lt;stdlib.h&gt;
#include &quot;stdlib.h&quot;
#include &quot;Player.hpp&quot;

using namespace std;

int main()
{
	Player player;

	player.run();

	return 0;
}
</code></pre>
<p>Player.hpp:</p>
<pre><code>#ifndef PLAYER_HPP
#define PLAYER_HPP

class Player
{

public:
	Player();
	~Player();

	void run();

private:

	char *pMap[11][15];
	void getKey();
	void map();

	bool game_running;

	int x;
	int y;

	void sp(int choosecolor);
	void clearscreen();
	void s();

};

#endif
</code></pre>
<p>Player.cpp:</p>
<pre><code>#include &quot;Player.hpp&quot;
#include &lt;iostream&gt;
#include &quot;windows.h&quot;
#include &lt;stdlib.h&gt;
#include &quot;stdlib.h&quot;

Player::Player()
{
	game_running = true;

	y = 8;
	x = 4;

	pMap[11][15] =

	&quot;ÉÍÍÍÍÍ»&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º  @  º&quot;,
	&quot;ÈÍÍÍÍÍ¼&quot;;

}

Player::~Player()
{

}

void Player::run()
{
	while(game_running == true)
	{
		clearscreen();
		map();
		getKey();

	}
}

void Player::map()
{
	for(int i = 0; i &lt; 10; i++)
		{
			sp(697);
			std::cout &lt;&lt; pMap[i] &lt;&lt; std::endl;
			s();
		}
	system(&quot;pause&gt;nul&quot;);
}

void Player::getKey()
{
	if(GetAsyncKeyState(VK_LEFT))
		{
			if( *pMap[y][x-1] == ' ')
			{
				*pMap[y][x] = ' ';
				x--;
				*pMap[y][x] = '@';
			}
		}
	if(GetAsyncKeyState(VK_RIGHT))
		{
			if( *pMap[y][x+1] == ' ')
			{
				*pMap[y][x] = ' ';
				x++;
				*pMap[y][x] = '@';
			}
		}
	if(GetAsyncKeyState(VK_ESCAPE))
	{
		game_running = false;

		exit;
	}

}

void Player::sp(int choosecolor)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), choosecolor);
}

void Player::clearscreen()
{
    HANDLE hOut;
    COORD Position;

    hOut = GetStdHandle(STD_OUTPUT_HANDLE);

    Position.X = 0;
    Position.Y = 0;
    SetConsoleCursorPosition(hOut, Position);
}

void Player::s()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
</code></pre>
<p>Wenn ich das compiliere dann kommt nicht die &quot;map&quot; raus die ich vorgesehen hatte sondern eifnach so buchstaben mit zahlen... und die ändern sich bei jedem start des programms.. kann mir da einer helfen ? bin eig noch ziemlich am anfang bzw bin neuling in c++ .. könnte ja mal einer versuchen zu kompilen und schauen ob es vllt an meinem pc liegt... weil error meldungen bekomme ich keine... naja hoffe mir kann da einer helfen <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>und nebenbei .. ich kann im moment leider keine youtube videos/tutorials anschauen da ich im moment kein internet habe weil wir da grad neue leitungen bekommen.. ka.. ich schreib das hier grad über mein handy internet/hotspot <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/topic/326839/hilfe-in-c</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 16:51:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326839.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jul 2014 18:55:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe in c++ on Wed, 09 Jul 2014 18:55:40 GMT]]></title><description><![CDATA[<p>Also ich habe gestern angefangen ein bisschen mit c++ zu programmieren und bin so weit gut gekommen... nur habe ich jetzt ein problem:</p>
<p>main.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;windows.h&quot;
#include &lt;stdlib.h&gt;
#include &quot;stdlib.h&quot;
#include &quot;Player.hpp&quot;

using namespace std;

int main()
{
	Player player;

	player.run();

	return 0;
}
</code></pre>
<p>Player.hpp:</p>
<pre><code>#ifndef PLAYER_HPP
#define PLAYER_HPP

class Player
{

public:
	Player();
	~Player();

	void run();

private:

	char *pMap[11][15];
	void getKey();
	void map();

	bool game_running;

	int x;
	int y;

	void sp(int choosecolor);
	void clearscreen();
	void s();

};

#endif
</code></pre>
<p>Player.cpp:</p>
<pre><code>#include &quot;Player.hpp&quot;
#include &lt;iostream&gt;
#include &quot;windows.h&quot;
#include &lt;stdlib.h&gt;
#include &quot;stdlib.h&quot;

Player::Player()
{
	game_running = true;

	y = 8;
	x = 4;

	pMap[11][15] =

	&quot;ÉÍÍÍÍÍ»&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º     º&quot;,
	&quot;º  @  º&quot;,
	&quot;ÈÍÍÍÍÍ¼&quot;;

}

Player::~Player()
{

}

void Player::run()
{
	while(game_running == true)
	{
		clearscreen();
		map();
		getKey();

	}
}

void Player::map()
{
	for(int i = 0; i &lt; 10; i++)
		{
			sp(697);
			std::cout &lt;&lt; pMap[i] &lt;&lt; std::endl;
			s();
		}
	system(&quot;pause&gt;nul&quot;);
}

void Player::getKey()
{
	if(GetAsyncKeyState(VK_LEFT))
		{
			if( *pMap[y][x-1] == ' ')
			{
				*pMap[y][x] = ' ';
				x--;
				*pMap[y][x] = '@';
			}
		}
	if(GetAsyncKeyState(VK_RIGHT))
		{
			if( *pMap[y][x+1] == ' ')
			{
				*pMap[y][x] = ' ';
				x++;
				*pMap[y][x] = '@';
			}
		}
	if(GetAsyncKeyState(VK_ESCAPE))
	{
		game_running = false;

		exit;
	}

}

void Player::sp(int choosecolor)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), choosecolor);
}

void Player::clearscreen()
{
    HANDLE hOut;
    COORD Position;

    hOut = GetStdHandle(STD_OUTPUT_HANDLE);

    Position.X = 0;
    Position.Y = 0;
    SetConsoleCursorPosition(hOut, Position);
}

void Player::s()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
</code></pre>
<p>Wenn ich das compiliere dann kommt nicht die &quot;map&quot; raus die ich vorgesehen hatte sondern eifnach so buchstaben mit zahlen... und die ändern sich bei jedem start des programms.. kann mir da einer helfen ? bin eig noch ziemlich am anfang bzw bin neuling in c++ .. könnte ja mal einer versuchen zu kompilen und schauen ob es vllt an meinem pc liegt... weil error meldungen bekomme ich keine... naja hoffe mir kann da einer helfen <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>und nebenbei .. ich kann im moment leider keine youtube videos/tutorials anschauen da ich im moment kein internet habe weil wir da grad neue leitungen bekommen.. ka.. ich schreib das hier grad über mein handy internet/hotspot <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/2407840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407840</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Wed, 09 Jul 2014 18:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Wed, 09 Jul 2014 19:15:34 GMT]]></title><description><![CDATA[<p>Nun die Tutorials/Videos die du verwendet hast sind scheinbar nicht so toll.<br />
Denn sonst wüsstest du, dass du ein Stringliteral nicht verändern kannst, was du aber in getKey tust. Da sollte auch sogar eine Warnung kommen, dreh mal dein Warnlevel höher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407845</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 09 Jul 2014 19:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Wed, 09 Jul 2014 19:51:51 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Nun die Tutorials/Videos die du verwendet hast sind scheinbar nicht so toll.<br />
Denn sonst wüsstest du, dass du ein Stringliteral nicht verändern kannst, was du aber in getKey tust. Da sollte auch sogar eine Warnung kommen, dreh mal dein Warnlevel höher.</p>
</blockquote>
<p>Was ist denn ich &quot;Stringliteral&quot; und wieso kann ich den nicht verändern ? Der fehler liegt beim anzeigen der &quot;map&quot; .. nicht beim &quot;GetKey&quot; denn das hat funktioniert ... kannst du ja auch mal testen <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="😃"
    /> Zumindestens denk ich das <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/2407852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407852</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Wed, 09 Jul 2014 19:51:51 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Wed, 09 Jul 2014 19:59:46 GMT]]></title><description><![CDATA[<p>abratar schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Nun die Tutorials/Videos die du verwendet hast sind scheinbar nicht so toll.<br />
Denn sonst wüsstest du, dass du ein Stringliteral nicht verändern kannst, was du aber in getKey tust. Da sollte auch sogar eine Warnung kommen, dreh mal dein Warnlevel höher.</p>
</blockquote>
<p>Was ist denn ich &quot;Stringliteral&quot; und wieso kann ich den nicht verändern ? Der fehler liegt beim anzeigen der &quot;map&quot; .. nicht beim &quot;GetKey&quot; denn das hat funktioniert ... kannst du ja auch mal testen <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="😃"
    /> Zumindestens denk ich das <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>
</blockquote>
<p>Oh, stimmt, dein Code ist viel falscher als ich dachte.<br />
Dein Tutorial ist definitiv grottig.<br />
Zeile 14: Was machst du da? Tipp: Es ist undefined behavior.<br />
Und daraus resultierend: Auf welchen Speicher greifst in getKey zu? Tipp: Es ist wieder undefined behavior.<br />
Dass du überhaupt was siehst, ist ein sehr glücklicher Zufall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407855</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 09 Jul 2014 19:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 05:06:09 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Oh, stimmt, dein Code ist viel falscher als ich dachte.<br />
Dein Tutorial ist definitiv grottig.<br />
Zeile 14: Was machst du da? Tipp: Es ist undefined behavior.<br />
Und daraus resultierend: Auf welchen Speicher greifst in getKey zu? Tipp: Es ist wieder undefined behavior.<br />
Dass du überhaupt was siehst, ist ein sehr glücklicher Zufall.</p>
</blockquote>
<p>Kannst du mir denn nicht sagen was da falsch ist ? und wie ich es verbessern kann .. weil &quot;undefined behavior hilft mir nicht viel <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="😕"
    /> Meinst du zeile 14 in main.cpp ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407904</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Thu, 10 Jul 2014 05:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 06:55:17 GMT]]></title><description><![CDATA[<p>Es bezieht sich auf die Player.cpp.<br />
Beschreib bitte ganz genau, was du da machst und wieso du das so machst, wie du es machst.<br />
Das ist nämlich wieder ein typischer Fall von irgendetwas dranklatschen bis es funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407908</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 10 Jul 2014 06:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 06:57:42 GMT]]></title><description><![CDATA[<p>Dein Hauptproblem scheint *char <em>pMap[11][15];</em> zu sein. Du scheinst zu meinen es würde einen Zeiger auf ein <em>char [11][15]</em> sein, ist es aber nicht. Stattdesses ist es ein Array von Arrays von char *. Vielleicht wolltest du auch nur den Compiler ruhig stellen, man kann in C++ so ziemlich alles mit ein paar Sternchen zum kompilieren kriegen, das macht es aber nicht richtig. <em>pMap[0]</em> gibt dir ein uninitialisiertes char *Array und</p>
<pre><code>pMap[11][15] =

    &quot;ÉÍÍÍÍÍ»&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º     º&quot;,
    &quot;º  @  º&quot;,
    &quot;ÈÍÍÍÍÍ¼&quot;;.
</code></pre>
<p>greift auf den nicht existenten char * <em>pMap[11][15]</em> zu und überschreibt ihn was dir irgendwas kaputt macht.</p>
<p>Eine Möglichkeit das zu reparieren ist das * aus *char <em>pMap[11][15];</em> zu entfernen und direkt zu initialisieren:</p>
<pre><code>char pMap[11][15] = {
		&quot;ÉÍÍÍÍÍ»&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º  @  º&quot;,
		&quot;ÈÍÍÍÍÍ¼&quot;
	};
</code></pre>
<p>Dann funktioniert bestimmt auch deine Ausgabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407909</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Thu, 10 Jul 2014 06:57:42 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 08:41:58 GMT]]></title><description><![CDATA[<p>abratar schrieb:</p>
<blockquote>
<pre><code>#include &lt;stdlib.h&gt; 
#include &quot;stdlib.h&quot;
</code></pre>
</blockquote>
<p>Warum zwei mal? Verstehst du den Unterschied? Wenn du C++ machen willst, benutz <code>cstdlib</code> , wenn überhaupt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407938</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Thu, 10 Jul 2014 08:41:58 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 11:11:04 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Eine Möglichkeit das zu reparieren ist das * aus *char <em>pMap[11][15];</em> zu entfernen und direkt zu initialisieren:</p>
<pre><code>char pMap[11][15] = {
		&quot;ÉÍÍÍÍÍ»&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º     º&quot;,
		&quot;º  @  º&quot;,
		&quot;ÈÍÍÍÍÍ¼&quot;
	};
</code></pre>
<p>Dann funktioniert bestimmt auch deine Ausgabe.</p>
</blockquote>
<p>das hatte ich schon versucht .. doch dann weiss ich nicht wie ich auf pMap zugreifen kann .. z.B. &quot;void Player::map()&quot; zeigt mir dann an das es pMap nicht gibt.. wie kann ich das hinbekommen dass er es findet? dachte das geht mit dem * ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407964</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Thu, 10 Jul 2014 11:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 20:19:17 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Denn sonst wüsstest du, dass du ein Stringliteral nicht verändern kannst, was du aber in getKey tust.</p>
</blockquote>
<p>Der tut kein Stringliteral verändern, wenn den Stern weglässt wie empfohlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408084</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Thu, 10 Jul 2014 20:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 19:51:15 GMT]]></title><description><![CDATA[<p>Das ArrayArray kannst du im Konstruktor explizit setzen:</p>
<p><a href="http://ideone.com/KohfMO" rel="nofollow">http://ideone.com/KohfMO</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408092</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Thu, 10 Jul 2014 19:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Thu, 10 Jul 2014 20:28:05 GMT]]></title><description><![CDATA[<p>Wutz schrieb:</p>
<blockquote>
<p>Das ArrayArray kannst du im Konstruktor explizit setzen:</p>
<p><a href="http://ideone.com/KohfMO" rel="nofollow">http://ideone.com/KohfMO</a></p>
</blockquote>
<p>Also erstmal danke für den die hilfe <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="🙂"
    /><br />
Aber ehrlich gesagt weiss ich nicht wie ich den code bei mir reinbauen soll <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>
<p>könntest du mir sagen bzw. erklären was ich aus meinem code löschen und was einfügen soll ?</p>
<p>Dein code sieht recht gut aus, nur versteh ich den nicht ganz<br />
was ist z.b. &quot;typedef&quot; ? wieso kann ich da nicht einfach &quot;char&quot; und &quot;struct&quot; ohne &quot;typedef&quot; machen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408102</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Thu, 10 Jul 2014 20:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Fri, 11 Jul 2014 08:59:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn du einen C++11-fähigen Compiler benutzt, müßte</p>
<pre><code class="language-cpp">char map[11][15] =
    {
        &quot;ÉÍÍÍÍÍ»&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º  @  º&quot;,
        &quot;ÈÍÍÍÍÍ¼&quot;
    };
</code></pre>
<p>im <strong>Header</strong> (innerhalb deiner Klassendefinition) funktionieren.</p>
<p>Ansonsten wird es etwas komplizierter:</p>
<pre><code class="language-cpp">// im Header (innerhalb deiner Klasse)
char map[11][15];
</code></pre>
<pre><code class="language-cpp">// im Konstruktor
static const char init_map[11][15] =
    {
        &quot;ÉÍÍÍÍÍ»&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º     º&quot;,
        &quot;º  @  º&quot;,
        &quot;ÈÍÍÍÍÍ¼&quot;
    };

// Array kopieren
memcpy(&amp;map[0][0], &amp;init_map[0][0], sizeof(map));
</code></pre>
<p>PS: Warum eigentlich [11][15]? Deine Daten sind doch [10][7] groß?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408148</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 11 Jul 2014 08:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Fri, 11 Jul 2014 09:29:51 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>// Array kopieren<br />
memcpy(&amp;map[0][0], &amp;init_map[0][0], sizeof(map));<br />
[/cpp]</p>
<p>PS: Warum eigentlich [11][15]? Deine Daten sind doch [10][7] groß?</p>
</blockquote>
<p>1. Ich habe Visual Studio 2010.<br />
2. Was genau macht &quot;Array kopieren&quot; ? also was wird da kopiert und wohin ? ist das die ausgabe oder wie?<br />
3. weil der compiler mir sagt dass wenn ich da [11][8] rein tu dass es nicht ausreicht für eine 15... keine ahnung .. sonst kompiliert der auch nicht.. wahrscheinlich zählen die zeichen bei meiner map mehr als nur 1 zeichen oder so ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2408150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408150</guid><dc:creator><![CDATA[abratar]]></dc:creator><pubDate>Fri, 11 Jul 2014 09:29:51 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe in c++ on Fri, 11 Jul 2014 11:11:41 GMT]]></title><description><![CDATA[<p>Gewöhne dir beim Programmdesign an, verschiedene Funktionalitäten in verschiedene Programmteile (bei C++ sinnvollerweise Klassen) zu kapseln, hier also z.B. die Nutzeraktionen und die Ausgabe, und presse nicht alles in eine Klasse.<br />
Dazu ist natürlich ein kompletter Überblick über die Dinge notwendig.<br />
Dann definierst du die Schnittstellen deiner Klassen, instanziierst die Objekte (das geschieht sinnvollerweise in main oder zumindest in ein und derselben Aufrufebene) und arbeitest vorrangig mit den Objekten und deren Schnittstellenmethoden und eben nicht mit Funktionen (Sinn der OOP).</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;windows.h&gt;

using namespace std;

struct Brett {
  Brett::Brett() {
    x = 3; y = 8; char z[10][8] = {
      &quot;ÉÍÍÍÍÍ»&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º     º&quot;,
      &quot;º  @  º&quot;,
      &quot;ÈÍÍÍÍÍ¼&quot; };

    memcpy(pMap,z,sizeof z);
  }
  char pMap[10][8];
  int x, y;
  void left(){  if (pMap[y][x-1] == ' ')  pMap[y][x--] = ' ', pMap[y][x] = '@'; }
  void right(){ if (pMap[y][x+1] == ' ')  pMap[y][x++] = ' ', pMap[y][x] = '@'; }
  void up(){    if (pMap[y-1][x] == ' ')  pMap[y--][x] = ' ', pMap[y][x] = '@'; }
  void down(){  if (pMap[y+1][x] == ' ')  pMap[y++][x] = ' ', pMap[y][x] = '@'; }

  void sp(int choosecolor)
  {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), choosecolor);
  }
  void s()
  {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
  }

  void print()
  {
    for (int i = 0; i &lt; 10; i++)
    {
      sp(697);
      cout &lt;&lt; pMap[i] &lt;&lt; &quot;\n&quot;;
      s();
    }
    system(&quot;pause&gt;nul&quot;);
  }
};

class Player
{
  Brett *brett;
  void getKey();
  bool game_running;

  void clearscreen();

public:
  Player(Brett&amp;b){
    game_running = true; brett = &amp;b;
  }

  void run();
};

void Player::run()
{
  while (game_running == true)
  {
    clearscreen();
    brett-&gt;print();
    getKey();

  }
}

void Player::getKey()
{
  if (GetAsyncKeyState(VK_LEFT))
  {
    brett-&gt;left();
  }
  else
  if (GetAsyncKeyState(VK_RIGHT))
  {
    brett-&gt;right();
  }
  else
  if (GetAsyncKeyState(VK_UP))
  {
    brett-&gt;up();
  }
  else
  if (GetAsyncKeyState(VK_DOWN))
  {
    brett-&gt;down();
  }
  else
  if (GetAsyncKeyState(VK_ESCAPE))
  {
    game_running = false;

    exit(0);
  }

}

void Player::clearscreen()
{
  HANDLE hOut;
  COORD Position;

  hOut = GetStdHandle(STD_OUTPUT_HANDLE);

  Position.X = 0;
  Position.Y = 0;
  SetConsoleCursorPosition(hOut, Position);
}

int main()
{
  Brett brett;
  Player player(brett);
  player.run();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2408171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2408171</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Fri, 11 Jul 2014 11:11:41 GMT</pubDate></item></channel></rss>