2016-04-26 7 views
-2

Ich habe eine Tic Tac Toe mit Win Form in Visual Studio C# Express entwickelt. Ich möchte eine Methode erstellen, die nach dem Gewinner sucht und wenn der Gewinner nicht gefunden wird und alle Blöcke zu Ende sind, haben wir eine Nachricht, die gezeigt werden soll.Erstellen Sie eine Methode, um den Gewinner zu überprüfen

Aber ich will es Form unabhängig sein. wie ich haben versucht, solche Gleichungen

if((button1.Text== button2.Text) && (button2.Text== button3.Text)) 
else if((button4.Text== button5.Text) && (button5.Text== button6.Text)) 
else if((button7.Text== button8.Text) && (button8.Text== button9.Text)) 

Ich möchte eine allgemeine Logik, so dass ich diese Methode in einer anderen Klasse erstellen und rufen

+0

Können Sie klarstellen, was Sie genau machen möchten? Denn so weit ich deine Frage verstanden habe, musst du diese Werte nur an eine Klasse weitergeben und sie dort überprüfen ... – 91378246

+0

Klingt nach einer Hausaufgabe für mich. Was hast du probiert? – Alex

Antwort

0

Diese helfen könnten:

public bool IsThreeInARow(string v1, string v2, string v3) 
{ 
    return v1 == v2 && v2 == v3; 
} 

Dies wird man überprüfen Reihe von Werten (dh Xs und/oder Os), unabhängig davon, woher die Werte stammen.

-2

Machen Sie neun statische Flags für neun Tasten, die Sie haben, und setzen Sie sie auf 1 oder 0 für 'x' und '0'.

Verwenden Sie diese Flags in anderen Klassen, um den Gewinner zu ermitteln. Sie müssen nicht auf die Tic Tac Toe-Tasten zugreifen.

1

Zunächst verwendet Ihr aktueller Code Klassenfelder, die Sie davon abhalten, den Code mit einem anderen Formular zu verwenden. Anstatt also mit:

bool CheckWinner() { } 

Sie müssen die Spieldaten als Parameter liefern:

bool CheckWinner(Button topLeftButton, Button topMiddleButton, ...) { } 

Dann können Sie einen Tag entscheiden, dass Sie nicht Button s verwenden, und Sie Würd Ihre Methode ändern:

bool CheckWinner(string topLeftValue, string topMiddleValue, ...) { } 

Sie auch zu prüfen, kann unter Verwendung eines enum:

enum TicTacToeValue 
{ 
    None = 0, 
    Cross = 1, 
    Circle = 2, 
} 

bool CheckWinner(TicTacToeValue topLeft, TicTacToeValue topMiddle, ...) { } 

oder sogar eine Reihe von denen, Ihre Methode liefern:

bool CheckWinner(TicTacToeValue[] values) { } 

Wenn ein solches Array verwenden Sie Ihr Programm ein bisschen intelligenter machen, da Sie Code wiederverwenden können, die für eine vollständige Zeile oder Spalte überprüft von Werten.

Sie können sogar zurückgeben, die gewonnen:

TicTacToeValue GetWinner(TicTacToeValue[] values) { } 

Welche TicTacToeValue.None zurückkehren kann, wenn niemand sofar gewonnen hat.

Verwandte Themen