Java-Programmierung Herausforderung: Ein einfaches Tic-Tac-Toe-Spiel

Ihre Mission, sollten Sie sich entscheiden, es zu akzeptieren, ist ein Java-Programm zu erstellen, das ein Spiel von Tic-Tac-Toe mit dem Benutzer spielen kann.

Wie Sie wahrscheinlich wissen, ist Tic-Tac-Toe ein einfaches Spiel, in der Regel mit Papier und Bleistift gespielt. Erstens, stellen Sie eine einfache 3 x 3 Raster auf dem Papier. Dann werden zwei Spieler abwechselnd schaltet sich von Xs und Os in leeren Räumen auf dem Grid-Kennzeichnung. Der erste Spieler, der drei seiner Marken in eine horizontale, vertikale oder diagonale Reihe gewinnt macht. Wenn alle Räume im Netz gefüllt werden, bevor jeder Spieler drei in einer Reihe markiert, ist das Spiel ein Unentschieden.

Hier sind die Regeln und Anweisungen für diese Challenge:

  1. Der Computer spielt, gegen den Menschen. Der Mensch bewegt sich zuerst und ist X. Der Computer O. ist

  2. Das Programm soll zunächst eine kurze Begrüßungsnachricht angezeigt werden, und dann sollte der Spieler für seine erste Bewegung aufzufordern. Beispielsweise:

    Willkommen bei Tic-Tac-Toe. Bitte geben Sie Ihre erste Schritt:
  3. Um die Quadrate des Gitters bestimmen, verwenden Sie die Buchstaben A, B und C für die Spalten und die Ziffern 1, 2 und 3 für die Zeilen, wie folgt aus:

     A1 B1 B2 C1A2 C2A3 B3 C3

    So ein X in der linken oberen Ecke Platz zu setzen, würde der menschliche Spieler den Text A1 eingeben, wenn das Programm den Spieler für einen Umzug aufgefordert.

    Nachdem der Mensch eine Bewegung eintritt, sollte das Programm auf der Konsole den aktuellen Status der Karte angezeigt werden.

  4. Verwenden X des menschlichen Dramen und O zu markieren des Computers spielt zu markieren. Verwenden Sie vertikale Balken Zeichen (auf der Tastatur mit dem umgekehrten Schrägstrich gefunden, knapp oberhalb der Enter-Taste) und Bindestriche das Brett in einem einfachen Raster zu zeichnen.

    Zum Beispiel, wenn der Benutzer A1 als seine erste Bewegung eingetreten ist, würde zeigt das Programm die folgenden:

     X | | --- | --- | --- | | --- | --- | --- | |
  5. Nach dem Umzug des Menschen bestimmt das Programm, seine Bewegung, gibt es für den Benutzer, zeigt eine aktualisierte Board, und dann fragt nach dem Umzug des Benutzers.

    Zum Beispiel könnte erscheint folgendes:

    Ich will spielen A2: X | O | --- | --- | --- | | --- | --- | --- | | Bitte geben Sie Ihren nächsten Schritt:
  6. Das Spiel geht weiter, bis ein Spieler in einer Reihe drei oder alle Plätze ohne Sieger gefüllt wurden erzielt hat. Ihr Programm muss in der Lage sein, zu bestimmen, ob jeder Spieler drei in einer Reihe erzielt hat und das Spiel gewonnen. (Dies ist der schwierigste Teil dieser Programmierung Herausforderung.)

  7. Wenn das Spiel vorbei ist, zeigt das Programm eine Meldung mit dem Ergebnis des Spiels anzeigt: "Du mich schlagen" wenn der menschliche Spieler gewinnt, "ich schlage dich!" wenn der Computer-Spieler gewinnt, oder "Es ist ein Unentschieden" wenn das Spiel endet unentschieden.

  8. Die menschlichen und Computer-Spieler können nur die Plätze spielen in, die von beiden Spielern nicht bereits belegt sind.

  9. Das Programm endet, wenn das Spiel entweder durch Spieler oder das Spiel gewonnen wird, ist ein Unentschieden. Wenn Sie wieder spielen wollen, müssen Sie das Programm erneut ausführen.

Beachten Sie, dass Sie jede Methode zu verwenden sind frei Sie wollen, um zu bestimmen, wie der Computer seine Bewegungen machen sollte. Ich schlage vor, Sie haben den Computer immer in der ersten leeren Platz spielen. Dies ist offensichtlich nicht der beste Weg, Tic-Tac-Toe zu spielen, und Sie müssen den Rechner keine Schwierigkeiten haben, schlagen jedes Mal, wenn Sie spielen. Aber die Wahl dieses einfache Spielstrategie ermöglicht es Ihnen, auf andere Aspekte der Programmierung zu konzentrieren, wie zum Beispiel, wie intern an das Netz darstellen und wie Sie feststellen können, wenn ein Spieler das Spiel gewonnen hat, oder wenn das Spiel in einem Unentschieden endete.

(In "Java-Programmierung Herausforderung: Hinzufügen von Arrays mit dem einfachen Tic-Tac-Toe-Programm" Sie gefragt werden mit einer besseren Strategie für das Programm zu entwickeln, um ihre Stücke zu bestimmen.)

Hier ist ein Beispiel für die Konsolenanzeige für ein komplettes Spiel:

Willkommen bei Tic-Tac-Toe. Bitte geben Sie Ihre erste Schritt: A1X | | --- | --- | --- | | --- | --- | --- | | Ich werde bei A2 spielen: X | O | --- | --- | --- | | --- | --- | --- | | Bitte geben Sie Ihren nächsten Schritt: B1X | O | --- | --- | --- X | | --- | --- | --- | | Ich werde bei A3 spielen: X | O | O --- | --- | --- X | | --- | --- | --- | | Bitte geben Sie Ihren nächsten Schritt: C1X | O | O --- | --- | --- X | | --- | --- | --- X | | Sie hat mich geschlagen!

Hier sind ein paar Tipps zum Einstieg:

  • Der beste Weg, um das Raster zu repräsentieren ist mit einem Array. Vorerst verwenden neun Variablen, mit dem Namen A1, A2, A3, B1, B2, B3, C1, C2, und C3.

  • Wenn Sie die int Geben Sie für die Netzvariablen können Sie dann 1 verwenden, um anzuzeigen, dass ein Quadrat ein X und 2, um anzuzeigen, enthält, dass ein Quadrat ein O. enthält

  • Acht mögliche Zeilen können zu einem Gewinn führen. Ein Spieler gewinnt, wenn eine der folgenden Kombinationen von Quadraten entweder 1 (für X) oder 2 (für O) sind:

    A1 - A2 - A3A1 - B1 - C1A1 - B2 - C3B1 - B2 - b3a2 - B2 - C2A3 - B2 - C1C1 - C2 - C3A3 - B3 - C3
  • Es gibt zwei Möglichkeiten, um zu bestimmen, ob das Spiel ein Unentschieden ist. Die erste ist, alle neun Quadrate zu überprüfen: Wenn keines der Quadrate leer ist und kein Spieler gewonnen hat, ist das Spiel ein Unentschieden. Das zweite ist, die Bewegungen zu zählen: Wenn neun Züge gemacht worden sind und kein Spieler hat gewonnen, das Spiel unentschieden ist.

Sie können eine Lösung für diese Programmierung Herausforderung an das finden Registerkarte Downloads des Java All-in-One For Dummies, 4th Edition Produktseite.

Viel Glück!

Menü