<?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[Infos zu GetDC()]]></title><description><![CDATA[<p>Huhu, ich habe einen bot für minesweeper geschrieben...</p>
<p>momentan sieht die hauptschleife so aus:</p>
<pre><code class="language-cpp">//LETS DO THIS!!!!!

//init spielfeld array
char **paSpielfeld;
paSpielfeld = new char*[gm[cGm].fieldW];
for(int i = 0; i &lt; gm[cGm].fieldW; i++)
{
	paSpielfeld[i] = new char[gm[cGm].fieldH];
}
//habe nun array -&gt; paSpielfeld[gm[cGm].fieldW][gm[cGm].fieldH] &lt;-
int nPlayactions;
int wins = 0;
int games = 0;
long nStartTimer = clock();
long nTimer = clock();
int delay = 60000;
while(1)
{

	nTimer = clock();
	if(nTimer-nStartTimer &gt; delay &amp;&amp; !pause)
	{
		pause = true;
		printf(&quot;Wins in %i seconds: %i (%i games)\n&quot;, delay/1000, wins, games);
	}
	waw_WindowSetPos(hWinHandle,NULL,nX,nY);
	if(!pause &amp;&amp; waw_CompareColor(MINE,GetPixel(cDC,nX+139,nY+73)))
	{
// ACHTUNG hier überprüfe ich ob ich verloren habe, indem ich einen pixel von dem &quot;smiley&quot; vom spielneustartbutton mit der farbe schwarz vergleiche. dieser pixel ist nur dann schwarz, wenn man verloren hat!
		//pause = true;
		waw_MouseMoveToLinear(nX+140, nY+64, mouseSpeed);

		waw_MouseClickLeft();

		printf(&quot;I lost!\n&quot;); 
		Sleep(1);
	}
	if(!pause)
	{
//normaler zug
		scanPlayfield(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);
		nPlayactions = play(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);
		if(nPlayactions == 0 &amp;&amp; !pause)
		{

			//no action-&gt; stuck!
			//printf(&quot;No possible action found!\n&quot;);
			//pause = true;
			randomSelect(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);

		}
		else if(nPlayactions == -1 &amp;&amp; !pause)
		{
			//newGame - alle felder sind verdeckt
			printf(&quot;New Game Started!\n&quot;);
			LeftClickField(rand() % gm[cGm].fieldW, rand() % gm[cGm].fieldH, nX, nY);
			games++;
		}
		else if(nPlayactions == -2 &amp;&amp; !pause)
		{
			// win - keine verdeckten felder mehr		
			printf(&quot;I Win!!\n&quot;);
			waw_MouseMoveToLinear(nX+140, nY+64, mouseSpeed);

			waw_MouseClickLeft();
			Sleep(1);
			wins++;
			//pause = true;
		}

	}

	if ( GetAsyncKeyState( VK_F12 ) &amp; 0x0001)
	{
		nStartTimer = clock();
		nTimer = clock();
		wins = 0;
		games = 0;
		printf(&quot;PAUSE toggled\n&quot;);
		pause = !pause;
	}

	Sleep(1);
}
</code></pre>
<p>jetzt passiert aber häufiger folgendes:<br />
das ganze läuft die 60 sekunden wunderbar, dann starte ich es erneut indem ich f12 drücke und das geht auch erstmal ganz normal... aber so nach ca 2 minuten oder so bekomme ich nurnoch &quot;I lost!&quot; Oo vollkommen absurd, da ich auch keinen zusammenhang mit irgendeiner aktion feststellen konnte. es passiert einfach irgendwann. Den dc (hDc) hole ich mir vor der schleife ganz normal mit &quot;GetDC(0)&quot;</p>
<p>ich finde keine andere erklärung, ausser das mit dem dc irgendwas nicht stimmt</p>
<p>oder übersehe ich etwas?</p>
<p>btw: der bot schafft so ca. 10 spiele / sekunde xD</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/216258/infos-zu-getdc</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 16:44:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216258.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Jun 2008 15:49:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Infos zu GetDC() on Sat, 21 Jun 2008 15:51:45 GMT]]></title><description><![CDATA[<p>Huhu, ich habe einen bot für minesweeper geschrieben...</p>
<p>momentan sieht die hauptschleife so aus:</p>
<pre><code class="language-cpp">//LETS DO THIS!!!!!

//init spielfeld array
char **paSpielfeld;
paSpielfeld = new char*[gm[cGm].fieldW];
for(int i = 0; i &lt; gm[cGm].fieldW; i++)
{
	paSpielfeld[i] = new char[gm[cGm].fieldH];
}
//habe nun array -&gt; paSpielfeld[gm[cGm].fieldW][gm[cGm].fieldH] &lt;-
int nPlayactions;
int wins = 0;
int games = 0;
long nStartTimer = clock();
long nTimer = clock();
int delay = 60000;
while(1)
{

	nTimer = clock();
	if(nTimer-nStartTimer &gt; delay &amp;&amp; !pause)
	{
		pause = true;
		printf(&quot;Wins in %i seconds: %i (%i games)\n&quot;, delay/1000, wins, games);
	}
	waw_WindowSetPos(hWinHandle,NULL,nX,nY);
	if(!pause &amp;&amp; waw_CompareColor(MINE,GetPixel(cDC,nX+139,nY+73)))
	{
// ACHTUNG hier überprüfe ich ob ich verloren habe, indem ich einen pixel von dem &quot;smiley&quot; vom spielneustartbutton mit der farbe schwarz vergleiche. dieser pixel ist nur dann schwarz, wenn man verloren hat!
		//pause = true;
		waw_MouseMoveToLinear(nX+140, nY+64, mouseSpeed);

		waw_MouseClickLeft();

		printf(&quot;I lost!\n&quot;); 
		Sleep(1);
	}
	if(!pause)
	{
//normaler zug
		scanPlayfield(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);
		nPlayactions = play(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);
		if(nPlayactions == 0 &amp;&amp; !pause)
		{

			//no action-&gt; stuck!
			//printf(&quot;No possible action found!\n&quot;);
			//pause = true;
			randomSelect(paSpielfeld, gm[cGm].fieldW, gm[cGm].fieldH, nX, nY);

		}
		else if(nPlayactions == -1 &amp;&amp; !pause)
		{
			//newGame - alle felder sind verdeckt
			printf(&quot;New Game Started!\n&quot;);
			LeftClickField(rand() % gm[cGm].fieldW, rand() % gm[cGm].fieldH, nX, nY);
			games++;
		}
		else if(nPlayactions == -2 &amp;&amp; !pause)
		{
			// win - keine verdeckten felder mehr		
			printf(&quot;I Win!!\n&quot;);
			waw_MouseMoveToLinear(nX+140, nY+64, mouseSpeed);

			waw_MouseClickLeft();
			Sleep(1);
			wins++;
			//pause = true;
		}

	}

	if ( GetAsyncKeyState( VK_F12 ) &amp; 0x0001)
	{
		nStartTimer = clock();
		nTimer = clock();
		wins = 0;
		games = 0;
		printf(&quot;PAUSE toggled\n&quot;);
		pause = !pause;
	}

	Sleep(1);
}
</code></pre>
<p>jetzt passiert aber häufiger folgendes:<br />
das ganze läuft die 60 sekunden wunderbar, dann starte ich es erneut indem ich f12 drücke und das geht auch erstmal ganz normal... aber so nach ca 2 minuten oder so bekomme ich nurnoch &quot;I lost!&quot; Oo vollkommen absurd, da ich auch keinen zusammenhang mit irgendeiner aktion feststellen konnte. es passiert einfach irgendwann. Den dc (hDc) hole ich mir vor der schleife ganz normal mit &quot;GetDC(0)&quot;</p>
<p>ich finde keine andere erklärung, ausser das mit dem dc irgendwas nicht stimmt</p>
<p>oder übersehe ich etwas?</p>
<p>btw: der bot schafft so ca. 10 spiele / sekunde xD</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1533295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1533295</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sat, 21 Jun 2008 15:51:45 GMT</pubDate></item></channel></rss>