<?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[Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot;]]></title><description><![CDATA[<p>hi leute ich hab mal wieder ein kleines problemchen bei dem ich auf dem schlauch hock... ich hock schon seit moins früh dran und ich komm net dahinter..<br />
ich hab zwei klassenmethoden die einen array durchsuchen und aufkunft geben ob man &quot;eingebene zahlen erraten hat. ich weiss ihr haltet nix davon code durchzulesen aber für die erklärung bedarf es dafür.</p>
<blockquote>
<blockquote>
<p>&gt; also.. die funktion bekommt durch <strong>my</strong> meinen &quot;eingebenen array&quot;<br />
die erste funktion überprüft ob mein array mit dem des generierten Arrays<br />
digits[i] übereinstimmt.. sozusagen ob die position richtig ist....<br />
so nun zur zweiten funktion, die soll nun auskunft geben ob sonst noch eingegebene zahlen richtig sind.. das macht die zwar aaaaaaaaaaaber....<br />
z.b wenn der generierte array digits[i]= 1,2,3,4 enthält und ich 1,5,5,1 eingegeben habe sagt mir meine funktion locationwrong ich hätte 2 nummern richtig..was falsch ist... ich weiss auch warum weil er ja einmal durchgeht bei der ersten 1 und des zweite mal bei der vierten 1... <strong>wie verhindere ich das???</strong> ich hasse algorithmen programmieren und steh auf kriegsfuss damit, desshalb frag ich euch....</p>
</blockquote>
</blockquote>
<pre><code>int MastermindDigits::locationRight(MastermindDigits&amp; my)const
{
	cout&lt;&lt;&quot;locationRight&quot;&lt;&lt;endl;
	status=0;
	for (int i=0; i&lt;=3; i++)
	{
		if(digits[i]==my.digits[i])
			status++;

	}
	cout&lt;&lt;&quot;Computerantwort: &quot;&lt;&lt;status&lt;&lt;&quot; an der richtigen Stelle;&quot;;
return status;
}

int MastermindDigits::locationWrong(MastermindDigits&amp; my)const
{

	cout&lt;&lt;&quot;locationWrong&quot;&lt;&lt;endl;
	int numberright=0;
	for (int i=0; i&lt;=3; i++)
	{
		for (int y=0; y&lt;=3; y++)
		{
			if(digits[i]==my.digits[y])
			{numberright++;}
		}	
	}
	cout&lt;&lt;&quot;sonst richtig sind: &quot;&lt;&lt;numberright&lt;&lt;endl;;
return numberright;
}
</code></pre>
<p>achja schleifenabbruch hatte ich schon probiert aber dann werden ja die anderen zahlen net überprüft <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178874/algorithmus-gesucht-quot-mastermind-spiel-quot</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 01:04:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178874.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 07:41:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot; on Mon, 16 Apr 2007 07:43:47 GMT]]></title><description><![CDATA[<p>hi leute ich hab mal wieder ein kleines problemchen bei dem ich auf dem schlauch hock... ich hock schon seit moins früh dran und ich komm net dahinter..<br />
ich hab zwei klassenmethoden die einen array durchsuchen und aufkunft geben ob man &quot;eingebene zahlen erraten hat. ich weiss ihr haltet nix davon code durchzulesen aber für die erklärung bedarf es dafür.</p>
<blockquote>
<blockquote>
<p>&gt; also.. die funktion bekommt durch <strong>my</strong> meinen &quot;eingebenen array&quot;<br />
die erste funktion überprüft ob mein array mit dem des generierten Arrays<br />
digits[i] übereinstimmt.. sozusagen ob die position richtig ist....<br />
so nun zur zweiten funktion, die soll nun auskunft geben ob sonst noch eingegebene zahlen richtig sind.. das macht die zwar aaaaaaaaaaaber....<br />
z.b wenn der generierte array digits[i]= 1,2,3,4 enthält und ich 1,5,5,1 eingegeben habe sagt mir meine funktion locationwrong ich hätte 2 nummern richtig..was falsch ist... ich weiss auch warum weil er ja einmal durchgeht bei der ersten 1 und des zweite mal bei der vierten 1... <strong>wie verhindere ich das???</strong> ich hasse algorithmen programmieren und steh auf kriegsfuss damit, desshalb frag ich euch....</p>
</blockquote>
</blockquote>
<pre><code>int MastermindDigits::locationRight(MastermindDigits&amp; my)const
{
	cout&lt;&lt;&quot;locationRight&quot;&lt;&lt;endl;
	status=0;
	for (int i=0; i&lt;=3; i++)
	{
		if(digits[i]==my.digits[i])
			status++;

	}
	cout&lt;&lt;&quot;Computerantwort: &quot;&lt;&lt;status&lt;&lt;&quot; an der richtigen Stelle;&quot;;
return status;
}

int MastermindDigits::locationWrong(MastermindDigits&amp; my)const
{

	cout&lt;&lt;&quot;locationWrong&quot;&lt;&lt;endl;
	int numberright=0;
	for (int i=0; i&lt;=3; i++)
	{
		for (int y=0; y&lt;=3; y++)
		{
			if(digits[i]==my.digits[y])
			{numberright++;}
		}	
	}
	cout&lt;&lt;&quot;sonst richtig sind: &quot;&lt;&lt;numberright&lt;&lt;endl;;
return numberright;
}
</code></pre>
<p>achja schleifenabbruch hatte ich schon probiert aber dann werden ja die anderen zahlen net überprüft <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266905</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Mon, 16 Apr 2007 07:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot; on Mon, 16 Apr 2007 08:07:10 GMT]]></title><description><![CDATA[<p>Ich würde beide Listen sortieren und mit set_intersection() bestimmen, welche (und damit auch wieviele) Ziffern sie gemeinsam haben - das achtet auch auf doppelt vorkommende Werte.</p>
<p>(PS: korrekterweise müsste die zweite Funktion übrigens bei digit ={1,2,3,4} und my.digit={1,5,5,1} 0 ausgeben - die erste 1 steht schon richtig, die zweite 1 hat kein Gegenstück in der Lösung.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1266935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1266935</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Apr 2007 08:07:10 GMT</pubDate></item><item><title><![CDATA[Reply to Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot; on Mon, 16 Apr 2007 09:53:14 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ich würde beide Listen sortieren und mit set_intersection() bestimmen, welche (und damit auch wieviele) Ziffern sie gemeinsam haben - das achtet auch auf doppelt vorkommende Werte.</p>
<p>(PS: korrekterweise müsste die zweite Funktion übrigens bei digit ={1,2,3,4} und my.digit={1,5,5,1} 0 ausgeben - die erste 1 steht schon richtig, die zweite 1 hat kein Gegenstück in der Lösung.)</p>
</blockquote>
<p>nein sortieren darf ich den array nicht da sonst der sinn des Mastermindspiels verloren geht:</p>
<p>ich hab einen ansatz aber leider noch nicht ganz richtig , hab eine temp eingeführt...</p>
<p>die variable status hab ich global damit die gefundenen stellen von locationRight nicht nochmal mitgezählt werden<br />
leider ist das ergebnis immer noch falsch wenn auch etwas verbessert <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="🙄"
    /><br />
bsp.<br />
zu ratende zahl ist: 6414 ;meine eingabe ist: 1455<br />
und es kommt raus es wären sonst richtig : 3 <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=":confused:"
      alt="😕"
    /></p>
<pre><code>int status=0;
int MastermindDigits::locationRight(MastermindDigits&amp; my)const
{
	cout&lt;&lt;&quot;locationRight&quot;&lt;&lt;endl;
	status=0;
	for (int i=0; i&lt;=3; i++)
	{
		if(digits[i]==my.digits[i])
			status++;

	}
	cout&lt;&lt;&quot;Computerantwort: &quot;&lt;&lt;status&lt;&lt;&quot; an der richtigen Stelle;&quot;&lt;&lt;endl;
	return status;
}

int MastermindDigits::locationWrong(MastermindDigits&amp; my)const
{
	cout&lt;&lt;&quot;locationWrong&quot;&lt;&lt;endl;
	int numberright=0; 
	int temp=0;
	for (int i=0; i&lt;=3; i++)
	{
		for (int y=0; y&lt;=3; y++)
		{
		if((digits[i]==my.digits[y])&amp;&amp;(digits[i]!=temp) )
			{	
				temp=my.digits[y];
				numberright++; 
			}
		}	
	}
	cout&lt;&lt;&quot;sonst richtig sind: &quot;&lt;&lt;numberright-status&lt;&lt;endl;;
return numberright;
}
</code></pre>
<p>zur besseren erläuterung noch die main</p>
<pre><code>int _tmain(int argc, _TCHAR* argv[])
{
	cout&lt;&lt;&quot;****Mastermind****&quot;&lt;&lt;endl;	

	MastermindDigits ComputerDigits;
	 int status=0;

	do{
		cout&lt;&lt;&quot;Bitte 4stellige Zahl zwischen 1-6 eingeben:&quot;;
		int computerNumber;
		cin&gt;&gt;computerNumber;
		MastermindDigits MyDigits = computerNumber;
		cout&lt;&lt;&quot;Ihre Eingabe ist:&quot;&lt;&lt;MyDigits&lt;&lt;endl;
		status= (ComputerDigits.locationRight(MyDigits));	

		if (status&lt;4)
			ComputerDigits.locationWrong(MyDigits);

	}while(status!=4);

	cout&lt;&lt;&quot;\nalles richtig!&quot;;
	return 0;	
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267003</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Mon, 16 Apr 2007 09:53:14 GMT</pubDate></item><item><title><![CDATA[Reply to Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot; on Mon, 16 Apr 2007 09:57:10 GMT]]></title><description><![CDATA[<p>sten schrieb:</p>
<blockquote>
<p>nein sortieren darf ich den array nicht da sonst der sinn des Mastermindspiels verloren geht:</p>
</blockquote>
<p>Dann sortierst du halt nicht das Original-Array, sondern eine Kopie <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267008</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Apr 2007 09:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Algorithmus gesucht &amp;quot;Mastermind-spiel&amp;quot; on Mon, 16 Apr 2007 11:17:33 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>sten schrieb:</p>
<blockquote>
<p>nein sortieren darf ich den array nicht da sonst der sinn des Mastermindspiels verloren geht:</p>
</blockquote>
<p>Dann sortierst du halt nicht das Original-Array, sondern eine Kopie <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="😉"
    /></p>
</blockquote>
<p>hehe... <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="😉"
    /> , stimmt... <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 />
das is schonmal ne idee, werds probieren</p>
<p>achja falls einer mal den quellcode anschauen will.. und noch nee idee hat.. gerne hier posten. <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="😉"
    /><br />
<a href="http://www.icefighters.eu/PG2LAB1.rar" rel="nofollow">http://www.icefighters.eu/PG2LAB1.rar</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267050</guid><dc:creator><![CDATA[sten]]></dc:creator><pubDate>Mon, 16 Apr 2007 11:17:33 GMT</pubDate></item></channel></rss>