<?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[Problem mit Brettspiel]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich programmiere gerade ein Schachspiel, hab schon das Brett als 8x8 array.</p>
<p>die Ausgabe des Brettes läuft auch super, Problem welches ich nun habe, ist wenn ich eine Figur die ich im Konstruktur der Klasse Brett alle erstelle und anzeigen lasse, bewegen möchte, sagt er mir Fehler beim Schreiben.</p>
<p>Ich hab eine Klasse Brett mit Funktionen setFigur und getFigur und moveFigur welche auf virtuelle Funktionen in der Klasse Figur greift</p>
<p>in der Figur.cpp habe ich dann die jeweiligen move funktionen für die Figuren.</p>
<pre><code>void CLaeufer::move(int x, int y)
{
	this-&gt;posx=x;
	this-&gt;posy=y;
	board-&gt;setFigur(this);

}
</code></pre>
<p>this-&gt;posx und y speichert die neuen Koordinaten auf dem Feld<br />
die board-&gt;setFigur(this) übergibt die Figur mit den neuen Koordinaten die im array dann neu gespeichert werden sollen und da tritt dann der Fehler auf, das ich einen Fehler beim SChreiben habe ... obwohl ich nicht aus dem Array komme.</p>
<p>Vielleicht kann ja jemand helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202320/problem-mit-brettspiel</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 14:09:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202320.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jan 2008 22:00:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 22:00:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich programmiere gerade ein Schachspiel, hab schon das Brett als 8x8 array.</p>
<p>die Ausgabe des Brettes läuft auch super, Problem welches ich nun habe, ist wenn ich eine Figur die ich im Konstruktur der Klasse Brett alle erstelle und anzeigen lasse, bewegen möchte, sagt er mir Fehler beim Schreiben.</p>
<p>Ich hab eine Klasse Brett mit Funktionen setFigur und getFigur und moveFigur welche auf virtuelle Funktionen in der Klasse Figur greift</p>
<p>in der Figur.cpp habe ich dann die jeweiligen move funktionen für die Figuren.</p>
<pre><code>void CLaeufer::move(int x, int y)
{
	this-&gt;posx=x;
	this-&gt;posy=y;
	board-&gt;setFigur(this);

}
</code></pre>
<p>this-&gt;posx und y speichert die neuen Koordinaten auf dem Feld<br />
die board-&gt;setFigur(this) übergibt die Figur mit den neuen Koordinaten die im array dann neu gespeichert werden sollen und da tritt dann der Fehler auf, das ich einen Fehler beim SChreiben habe ... obwohl ich nicht aus dem Array komme.</p>
<p>Vielleicht kann ja jemand helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433999</guid><dc:creator><![CDATA[seoman]]></dc:creator><pubDate>Wed, 09 Jan 2008 22:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 22:16:48 GMT]]></title><description><![CDATA[<p>im ctor von CLaeufer kannste noch keine v-funktionen von CLaeufer aufrufen, weil dein objekt noch kein CLaeufer IST. das ist es erst am ende des ctors.</p>
<p>abhilfe schafft eine basisklasse CFigur mit den attributen posx und posy.</p>
<p>nebenbeibemerkt: CFigur ist kein guter name, weil nach schachterminologie Bauern keine Figuren sind. CStein ist wohl weittragend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434007</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 09 Jan 2008 22:16:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 22:33:47 GMT]]></title><description><![CDATA[<p>das ist schon klar, ich hab eine basisklase CFigur von der leite ich alle anderen Figuren ab, die CFigur hat eine virtual move ...</p>
<p>problem ist hald nur das ich nicht in das array schreiben kann. Die Figuren aus dem CFigur *board[8][8] kann ich lesen und erstellen ... aber nicht dann wieder verschieben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434017</guid><dc:creator><![CDATA[seoman]]></dc:creator><pubDate>Wed, 09 Jan 2008 22:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 22:54:10 GMT]]></title><description><![CDATA[<p>seoman schrieb:</p>
<blockquote>
<p>das ist schon klar, ich hab eine basisklase CFigur von der leite ich alle anderen Figuren ab, die CFigur hat eine virtual move ...</p>
<p>problem ist hald nur das ich nicht in das array schreiben kann. Die Figuren aus dem CFigur *board[8][8] kann ich lesen und erstellen ... aber nicht dann wieder verschieben</p>
</blockquote>
<p>komisch. aber ich kenne das CBoard nicht.</p>
<p>ich denke an sowas. und kann mich nicht erinndern, dass sowas nicht klappt.</p>
<pre><code>void CFigur::appear(int x, int y) 
{ 
    posx=x; 
    posy=y; 
    board-&gt;data[posy][posx]=this;
}
void CFigur::disappear() 
{ 
    board-&gt;data[posy][posx]=0;
}
void CFigur::move(int x, int y) 
{ 
    disappear();
    appear(x,y);
}
</code></pre>
<p>ja, board-&gt;data[posy][posx]=this; wird zu board.setFigur(posy,posx,this). und ja, weiler kann die doofe überladung mit 0 weg mit board.delFigur(posy,posx) geschehen. zum beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434018</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 09 Jan 2008 22:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 23:17:52 GMT]]></title><description><![CDATA[<p>genau hier: board-&gt;Board[posx][posy]=0;</p>
<p>gibt er eine Fehlermeldung Zugriffsverletzung beim Schreiben</p>
<p>Natürlich habe ich mir die Überlegung gemacht was passiert wenn ich die Figur verschiebe, aber es kommt immer diese Zugriffsverletzung</p>
<p>paar funktionen aus der CBoard.cpp</p>
<pre><code>void CBoard::setFigur(CFigur* figur)
{
	Board[figur-&gt;posx][figur-&gt;posy]=figur;		
}

CFigur * CBoard::getFigur(int x, int y){
	return this-&gt;Board[x][y];

}

void CBoard::setHolder(int x, int y)
{
	this-&gt;Board[x][y]=0;
}

void CBoard::moveFigur(CFigur *figur, int x, int y)
{

	figur-&gt;move(x,y);

}
</code></pre>
<p>und aus der CFigur.cpp</p>
<pre><code>CFigur::CFigur(string _farbe,int _posx,int _posy,string _bez)
{
	farbe = _farbe;
	posx=_posx;
	posy=_posy;
	bez=_bez;
}

void CFigur::move(int x, int y)
{
	this-&gt;posx=x;
	this-&gt;posy=y;

}

CTurm::CTurm(string farbe,int x,int y, string bez): CFigur(farbe,x,y,bez)
{
}

void CTurm::move(int x, int y)
{
	board-&gt;setHolder(x, y);
	this-&gt;posx=x;
	this-&gt;posy=y;
	board-&gt;setFigur(this);

}
</code></pre>
<p>und aus der CFigur.h</p>
<pre><code>class CBoard;

class CFigur
{
public:
	CFigur(string farbe, int posx, int posy,string bez);
	CBoard* board;
	string farbe;
	string bez;
	int posx;
	int posy;
	/*void appear(int x, int y);
	void disappear();
	*/
	virtual void move(int posx, int posy);
};

class CTurm : public CFigur
{
public:
	CTurm(string farbe, int posx, int posy,string bez);
	virtual void move(int posx, int posy);
};
</code></pre>
<p>vielleicht erkennt man den Fehler jetzt besser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434028</guid><dc:creator><![CDATA[seoman]]></dc:creator><pubDate>Wed, 09 Jan 2008 23:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Wed, 09 Jan 2008 23:32:57 GMT]]></title><description><![CDATA[<p>seoman schrieb:</p>
<blockquote>
<p>vielleicht erkennt man den Fehler jetzt besser</p>
</blockquote>
<p>nee. aber was sagt denn der call-stack?<br />
also starte mit f5 dann sollte der dich auf den fehlker werfen. Dann alt+7. In der Aufrufliste (call-stack) dann eins oder mehr höherklicken (tiefer).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434037</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 09 Jan 2008 23:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Brettspiel on Thu, 10 Jan 2008 00:11:54 GMT]]></title><description><![CDATA[<p>seoman schrieb:</p>
<blockquote>
<p>genau hier: board-&gt;Board[posx][posy]=0;<br />
gibt er eine Fehlermeldung Zugriffsverletzung beim Schreiben</p>
</blockquote>
<p>also ist board==0<br />
warumauchimmer.<br />
normalerweise passier das, wenn noch ne globale var dieses namens aus versehen rumgammelt. hier ist wohl die EINE globale besser als dass jeder stein sein brett kennen muss.</p>
<p>edit:<br />
oder oh Schreck du hast gleich alles global gemacht und verreckst ob der konstruktuionsreihenfolge globaler objekte. nur ne vermutung am rande.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434038</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 10 Jan 2008 00:11:54 GMT</pubDate></item></channel></rss>