<?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[Kartendeck intialisieren]]></title><description><![CDATA[<p>Inspiriert durch das andere Mau-Mau-Thema dachte ich mir, dass das auch für mich eine gute Übung wäre.</p>
<p>Meine Klasse für die Karten sieht folgendermaßen aus:</p>
<pre><code>namespace card 
{
	enum type  { Ass, King, Queen, Jack, Ten, Nine, Eight, Seven, Six, Five, Four, Three, Two };
	enum color { Clubs, Spade, Heart, Diamonds };

	class Card
	{

	public:
		Card(type t, color c);
		~Card();

		void  setType(type t);
		void  setColor(color c);
		type  getType() const;
		color getColor() const;

	private:
		type  card_type;
		color card_color;

		Card(const Card&amp;);
		Card&amp; operator=(const Card&amp;);
	};
}
</code></pre>
<p>Jetzt geht es darum zu Beginn ein Kartendeck zu intialisieren. Und hier bin ich hängengeblieben. Ich habe noch eine Klasse <code>MauMau</code> , in dessen Konstruktor ich das erledigen möchte.</p>
<pre><code>#include &quot;Card.h&quot;
#include &lt;vector&gt;

class MauMau
{
public:
	MauMau(int players);
	~MauMau();

	void shuffle();

private:

	static const int card_amount;

	std::vector&lt;card::Card&gt; cards;

	MauMau(const MauMau&amp;);
	MauMau&amp; operator=(const MauMau&amp;);
};
</code></pre>
<p>Nur wie mache ich das am besten? Ich muss dazu ja einmal über meine enums iterieren und gleichzeitig über meinen Vektor. Kann man das irgendwie eleganter lösen als durch zich ineinander verschachtelte Schleifen?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311540/kartendeck-intialisieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 14:16:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311540.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Dec 2012 20:06:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kartendeck intialisieren on Fri, 07 Dec 2012 20:06:54 GMT]]></title><description><![CDATA[<p>Inspiriert durch das andere Mau-Mau-Thema dachte ich mir, dass das auch für mich eine gute Übung wäre.</p>
<p>Meine Klasse für die Karten sieht folgendermaßen aus:</p>
<pre><code>namespace card 
{
	enum type  { Ass, King, Queen, Jack, Ten, Nine, Eight, Seven, Six, Five, Four, Three, Two };
	enum color { Clubs, Spade, Heart, Diamonds };

	class Card
	{

	public:
		Card(type t, color c);
		~Card();

		void  setType(type t);
		void  setColor(color c);
		type  getType() const;
		color getColor() const;

	private:
		type  card_type;
		color card_color;

		Card(const Card&amp;);
		Card&amp; operator=(const Card&amp;);
	};
}
</code></pre>
<p>Jetzt geht es darum zu Beginn ein Kartendeck zu intialisieren. Und hier bin ich hängengeblieben. Ich habe noch eine Klasse <code>MauMau</code> , in dessen Konstruktor ich das erledigen möchte.</p>
<pre><code>#include &quot;Card.h&quot;
#include &lt;vector&gt;

class MauMau
{
public:
	MauMau(int players);
	~MauMau();

	void shuffle();

private:

	static const int card_amount;

	std::vector&lt;card::Card&gt; cards;

	MauMau(const MauMau&amp;);
	MauMau&amp; operator=(const MauMau&amp;);
};
</code></pre>
<p>Nur wie mache ich das am besten? Ich muss dazu ja einmal über meine enums iterieren und gleichzeitig über meinen Vektor. Kann man das irgendwie eleganter lösen als durch zich ineinander verschachtelte Schleifen?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278284</guid><dc:creator><![CDATA[maumau]]></dc:creator><pubDate>Fri, 07 Dec 2012 20:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Kartendeck intialisieren on Fri, 07 Dec 2012 21:00:54 GMT]]></title><description><![CDATA[<p>Ich versuche mich auch gerade an Mau-Mau aufgrund des Theams von heute mittag <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Ich habe das so gelöst:</p>
<pre><code>#ifndef CARD_H
#define CARD_H

#include &lt;string&gt;

class Card
{
public:
    Card(std::string name, std::string color);
    std::string getCardname();
    std::string getCardcolor();
private:
    std::string cardname;
    std::string cardcolor;
};

#endif // CARD_H
</code></pre>
<pre><code>#ifndef DECK_H
#define DECK_H

#include &quot;card.h&quot;
#include &lt;vector&gt;

class Deck
{
public:
    Deck();
    void shuffelDeck();
    Card deal();
private:
    std::vector&lt;Card&gt; cards;
    int card;
};

#endif // DECK_H
</code></pre>
<p>Zum mischen habe ich random_shuffle genutzt.</p>
<p>Ich habe die Klassen Karten, Kartendeck, Spieler und in der Klasse Game führe ich das alles zusammen. Mal schauen, ob ich das vernünftig hinkriege.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278307</guid><dc:creator><![CDATA[eddi0815]]></dc:creator><pubDate>Fri, 07 Dec 2012 21:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Kartendeck intialisieren on Fri, 07 Dec 2012 21:03:39 GMT]]></title><description><![CDATA[<p>maumau schrieb:</p>
<blockquote>
<p>Nur wie mache ich das am besten? Ich muss dazu ja einmal über meine enums iterieren und gleichzeitig über meinen Vektor. Kann man das irgendwie eleganter lösen als durch zich ineinander verschachtelte Schleifen?</p>
</blockquote>
<p>Je nach Geschmack sind das entweder eine oder zwei Schleifen. Wo ist das Problem?</p>
<pre><code class="language-cpp">for (int c = 0; c &lt; color_count; ++c)
{
	for (int t = 0; t &lt; type_count; ++t)
	{
		cards.push_back(Card(
			static_cast&lt;type&gt;(t),
			static_cast&lt;color&gt;(c)));
	}
}

std::random_shuffle(cards.begin(), cards.end());
</code></pre>
<p>Warum ist <code>Card</code> eigentlich nicht kopierbar und wozu der Destruktor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278308</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 07 Dec 2012 21:03:39 GMT</pubDate></item></channel></rss>