Stay Tuned
Grünschnabel
Hallo,
Wir haben vor ein paar Wochen mit MFC angefangen und sind grade dabei das Spiel "TicTacToe" zu programmieren.
Wir sind nun so weit das 9 Felder und ein kleines Feld, welches bestimmt welcher spieler dran ist, angezeigt werden.
Nun haben wie eine Aufgabe vom Lehrer bekommen bis Montag das Programm soweit zu erweitern, dass das Programm erkennt wann ein Spieler gewonnen hat.
Mein OnLButtonDown sieht at the moment noch so aus.
m_feld[ i ][ j ] sind die 9 Felder und m_mini ist das kleine Feld.
Mein Gedankengang war jetzt m_feld[ i ][ j ].m_farbe so zu vergleichen das ich sehen kann ob z.B. m_feld[0][0], m_feld[0][1] und m_feld[0][2] die selbe Farbe haben.
Jedoch finde ich keine möglichkeit dies so zu realisieren und die Aufgabenstellung des Lehrers ist mir persönlich auch nicht grade schlüssig.
Bin kein Programmier-Ass und mühe mich mit dem ganzen noch etwas ab und bräuchte deswegen etwas unterstützung von Leuten die sich damit besser auskennen. ( Leider ist unser Lehrer da keine besondere Hilfe, er lehrt uns nach dem Motto "erfinde das Rad selbst neu"... )
Hoffe jemand kann mir sagen wie ich überprüfen kann, wann welcher Spieler gewonnen hat und eventuell auch, wie ich dies ausgeben könnte.
Wenn ihr dazu noch irgendwas von mir wissen müsst, sagt es mir und ich werde den Thread einfach editieren.
Mit freundlichen Grüßen
Stay Tuned
Wir haben vor ein paar Wochen mit MFC angefangen und sind grade dabei das Spiel "TicTacToe" zu programmieren.
Wir sind nun so weit das 9 Felder und ein kleines Feld, welches bestimmt welcher spieler dran ist, angezeigt werden.
Nun haben wie eine Aufgabe vom Lehrer bekommen bis Montag das Programm soweit zu erweitern, dass das Programm erkennt wann ein Spieler gewonnen hat.
Wenn Sie mit der vorangegangenen Aufgabe und der Anzeige der aktuellen Spielfarbe (kleines Rechteck neben dem Spielfeld) fertig sind, erweitern Sie die Logik in OnLButtonDown so, dass festgestellt werden kann, wenn ein Spieler gewonnen hat.
Der Gewinnzustand soll in einer Variablen CTTTView::m_win festgehalten werden:
Gewinn...................m_win
Noch keiner................0
Spieler rot...................1
Spieler blau................2
Wo deklarieren Sie m_win? Wo initialisieren Sie m_win?
Mein OnLButtonDown sieht at the moment noch so aus.
Code:
void CTTTView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
if(m_feld[i][j].PtInRect(point)&&m_feld[i][j].m_farbe == RGB ( 100,100,100)){
if(m_player == 1 ){
m_feld[i][j].m_farbe = RGB ( 0,0,255);
m_mini.m_farbe = RGB ( 255,0,0);
m_player = 2;
}
else{
m_feld[i][j].m_farbe = RGB ( 255,0,0);
m_mini.m_farbe = RGB ( 0,0,255 );
m_player = 1;
}
}
this->Invalidate();
}
}
CView::OnLButtonDown(nFlags, point);
}
m_feld[ i ][ j ] sind die 9 Felder und m_mini ist das kleine Feld.
Mein Gedankengang war jetzt m_feld[ i ][ j ].m_farbe so zu vergleichen das ich sehen kann ob z.B. m_feld[0][0], m_feld[0][1] und m_feld[0][2] die selbe Farbe haben.
Jedoch finde ich keine möglichkeit dies so zu realisieren und die Aufgabenstellung des Lehrers ist mir persönlich auch nicht grade schlüssig.
Bin kein Programmier-Ass und mühe mich mit dem ganzen noch etwas ab und bräuchte deswegen etwas unterstützung von Leuten die sich damit besser auskennen. ( Leider ist unser Lehrer da keine besondere Hilfe, er lehrt uns nach dem Motto "erfinde das Rad selbst neu"... )
Hoffe jemand kann mir sagen wie ich überprüfen kann, wann welcher Spieler gewonnen hat und eventuell auch, wie ich dies ausgeben könnte.
Wenn ihr dazu noch irgendwas von mir wissen müsst, sagt es mir und ich werde den Thread einfach editieren.
Mit freundlichen Grüßen
Stay Tuned