Moin.
Ich stehe wiedereinmal vor einem abstrakten Rätsel.
Ich habe ein eigenes Struct.
In einer anderen Funktion benutze ich nun dieses Struct um einen Wert zu berechnen.
Code
/**
* This function checks if a move is valid.
*/
bool cField::IsValidMove(tMove Move)
{
tPosition Position;
cout << " >> Is valid move ..." << endl;
// check if the stones are within the field and free
if(!this->IsEmptyField(Move.First) || !this->IsEmptyField(Move.Second))
{
return false;
}
// check if the stones halfes are next to each other
for(short i = 0; i < 6; i ++)
{
// get position of next neighbour stone
Position = this->GetNextStoneInDirection(Move.First, i);
// DAS IST DIE BOESE ZEILE
cout << "Position X: " << Position.X << " Y: " << Position.Y << endl;
// check positions
if((Move.Second.X == Position.X) && (Move.Second.Y == Position.Y))
{
cout << "Stone found" << endl;
break;
}
// not located next to each other
if(i == 5)
{
return false;
}
}
cout << "Valid move" << endl;
return true;
}
Alles anzeigen
Das funktioniert auch soweit, aber nur, solange die Zeile nach // DAS IST DIE BOESE ZEILE im Code vorhanden ist.
Wenn ich den cout Befehl rausnehme, ist die Überprüfung immer false.
Der Fehler ist für mich völlig unverständlich ...
Hat da Jemand eine Idee, ob es auch ohne die cout Zeile geht?