2012-03-25 13 views
0

Ich habe ein einfaches Tic Tac Toe-Spiel in C# erstellt, das im 1-Spieler-Modus und im 2-Spieler-Modus gespielt werden kann.C# Tic Tac Toe Konsole App

Ich programmierte den Computer richtig zu reagieren (im Computer vs. Player-Modus), aber ich denke, dass mein Code viel größer ist, als es sein sollte, was ich getan habe ist, dass ich jede mögliche Kombination manuell überprüft, und ' t scheint zu finden, wie man den Code minimiert. Hier

ist die makeComputerMove() func: https://gist.github.com/2192374

Erläuterung der Variablen:

char [,] Foren: 2D-Array, enthält das 'X' und 'O'

char Form : das ist die Form, die ich benutze, um die Priorität zu bestimmen, zuerst setze ich es auf 'O', damit der Computer versucht zu gewinnen. Wenn es nicht gewinnen kann, wird es versuchen zu blockieren. Wenn es nichts zu blockieren gibt, wird versucht, ein 'O' nahe einem anderen 'O' auf dem Board zu setzen.

Position P: ein Objekt, das die Werte Row und Col.

Dank enthält.

EDIT: Jetzt sehe ich, dass Leute denken, ich möchte, dass Sie meinen Code neu schreiben. Ich habe es einfach hinzugefügt, damit du sehen kannst, was ich getan habe. Ich frage nur nach Tipps (indem ich das Problem auf andere Weise anspreche).

+0

Sie müssen Ihre Anfrage für Code Review hier: http://codereview.stackexchange.com/ –

+0

Sie also im Wesentlichen bitten uns, Ihre Anwendung neu schreiben? –

+0

Wonach ich gefragt habe, ist eine andere Art zu denken als meine, nicht geschriebener Code, weil es keinen Wert für mein Lernen hat – Novak

Antwort

1

Lesen Sie über MinMax Algorithmen hier, um die allgemeine Idee zu erhalten. Es ist im Grunde Rückverfolgung durch mögliche Bewegungen, und für jede mögliche Bewegung zu allen möglichen Bewegungen, und so in eine bestimmte Anzahl von Zügen (ai Tiefe). Dies verwendet Rekursion. Da dies TicTacToe ist, können Sie die "Tiefe" verlieren und "Ende" als Ihre Stoppbedingung haben.

Verwandte Themen