Zuhause Persönliche Finanzen Java Programming Challenge: Hinzufügen einer GUI zum Tic-Tac-Toe-Programm

Java Programming Challenge: Hinzufügen einer GUI zum Tic-Tac-Toe-Programm

Video: C++ Praxis Tutorial #014 TicTacToe mit Computergegner programmieren 2024

Video: C++ Praxis Tutorial #014 TicTacToe mit Computergegner programmieren 2024
Anonim

In Java Programming Challenge: Ein einfaches Tic-Tac-Toe-Spiel wurden Sie herausgefordert, ein konsolenbasiertes Programm zu schreiben, das das einfache Spiel von Tic-Tac-Toe spielt. Die Java-Programmierherausforderung besteht darin, Swing zu verwenden, um eine grafische Benutzerschnittstelle (GUI) zu dem Programm hinzuzufügen. Die GUI sollte der hier gezeigten ähneln.

die Benutzeroberfläche für ein Tic-Tac-Toe-Programm.

Das Spiel ist einfach. Der menschliche Spieler spielt zuerst, indem er auf eines der Quadrate klickt. Das Quadrat, auf das der Mensch geklickt hat, zeigt ein großes X an. Nachdem der Mensch gespielt hat, bestimmt das Programm, ob der Mensch einen Draw gewonnen oder gezwungen hat. Wenn dies der Fall ist, wird eine Nachricht angezeigt, das Board wird zurückgesetzt und ein neues Spiel beginnt. Wenn nicht, wählt der Computer eine Bewegung und markiert sein Quadrat mit einem großen O.

Das Programm ermittelt dann, ob der Computer das Spiel gewonnen hat. Wenn dies der Fall ist, zeigt das Programm eine Nachricht an, setzt die Karte zurück und startet ein neues Spiel. Wenn nicht, spielt der menschliche Spieler erneut. Dies dauert an, bis ein Spieler gewinnt oder alle Felder gefüllt sind.

Ihr Programm sollte dieselbe TicTacToeBoard-Klasse verwenden, die Sie für die Java-Programmieraufgabe erstellt haben: Klasse zum einfachen Tic-Tac-Toe-Programm hinzufügen. Mit anderen Worten muss es genau die gleichen Methoden implementieren. Für Ihre Bequemlichkeit werden diese Methoden in der folgenden Tabelle wiederholt.

Die TicTacToeBoard Klasse
Konstruktor Beschreibung
TicTacToeBoard Erzeugt ein neues TicTacToeBoard mit allen Feldern leer.
Methode Beschreibung
void reset () Setzt den Status jedes Quadrats auf leer zurück.
void playAt (String square, int player) Markiert das angegebene Quadrat (A1, A2, A3, B1, B2, B3, C1, C2 oder C3) für den angegebenen Spieler (1 für X, 2 für O). Löst IllegalArgumentException aus, wenn square nicht zu den zulässigen Werten gehört, player nicht 1 oder 2 ist oder das angegebene Quadrat nicht leer ist.
int isGameOver () Legt fest, ob das Spiel beendet ist. Gibt 0 zurück, wenn das Spiel noch nicht beendet ist, 1, wenn X das Spiel gewonnen hat, 2, wenn O das Spiel gewonnen hat, und 3, wenn das Spiel unentschieden ist. Die Spielendbedingungen lauten wie folgt:

1: Wenn eine Zeile, Spalte oder Diagonale alle X enthält.

2: Wenn eine Zeile, Spalte oder Diagonale alle O enthält.

3: Wenn es keine leeren Quadrate gibt und weder X noch O gewonnen haben.

int getNextMove () Gibt eine ganze Zahl zurück, die den nächsten Zug für den Computergegner darstellt. Diese Methode sollte eine rudimentäre Anstrengung unternehmen, um einen guten Zug gemäß der folgenden Strategie auszuwählen:

* Wenn das Zentrum (Quadrat B2) leer ist, spielen Sie das mittlere Quadrat.

* Wenn die Mitte nicht leer ist, aber eine der vier Ecken (Quadrate A1, A3, C1 oder C3) leer ist, spielen Sie eine der Ecken (es spielt keine Rolle, welche).

* Wenn die Mitte nicht leer ist und keine Ecken leer sind, spielen Sie eine der Kanten (Quadrate A2, B1, B3 oder C2).

String toString () Gibt eine Zeichenfolge zurück, die den aktuellen Status der Karte darstellt. Die Zeichenfolge enthält Zeilenumbruchzeichen, um die Zeilen sowie Trennlinien in separaten Konsolenzeilen anzuzeigen, wie in diesem Beispiel:

O | | O

- | - | -

| X |

- | - | -

| X |

Die Lösung für diese Herausforderung finden Sie auf der Registerkarte Downloads der Produktseite Java All-in-One für Dummies, 4th Edition.

Viel Glück!

Java Programming Challenge: Hinzufügen einer GUI zum Tic-Tac-Toe-Programm

Die Wahl des Herausgebers

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Schneller Foto-Bearbeitungsmodus ist eine abgespeckte Version des Modus "Full Photo Edit", der einfach grundlegende Fixingtools bereitstellt und mit einigen einzigartigen Funktionen aufwartet, z. B. eine Vorher-Nachher-Vorschau Ihres Bildes. Hier ist ein Schritt-für-Schritt-Workflow, den Sie im Schnellfoto-Bearbeitungsmodus verwenden können, um Ihre Fotos zu reparieren:

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Fotoeffekte in Photoshop Elements 11 funktionieren wie Anwenden von Filtern; Das Dialogfeld "Filtergalerie" bietet Ihnen zahlreiche Optionen zum Anwenden eines Filters. Das geführte Bedienfeld bietet Ihnen Filtereffekte und führt Sie dann durch die Schritte zum Anpassen von Helligkeitswerte, Ändern von Farbton und Sättigung und Durchführen weiterer Anpassungen zum Vervollkommnen des Ergebnisses. Sie ...

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Absatztyp in Photoshop Elements 11 ist ähnlich zu dem Text, den Sie in ein Textverarbeitungsprogramm eingeben, mit der Ausnahme, dass er in einem Textfeld oder einem Begrenzungsrahmen enthalten ist. Wenn Sie größere Textabschnitte haben, die Sie in ein Bild eingeben möchten, ist die Eingabe des Textes als Absatztyp die praktischste Option. Während ...

Die Wahl des Herausgebers

PHP-Anweisungen - Dummys

PHP-Anweisungen - Dummys

PHP ist eine Skriptsprache, die speziell für die Verwendung im Internet entwickelt wurde. Es enthält Funktionen, die Sie bei der Programmierung der Aufgaben unterstützen, die für die Entwicklung dynamischer Webanwendungen erforderlich sind. Diese Tabelle gibt einen kurzen Überblick über einige der Anweisungen, die Sie häufig verwenden werden: Anweisung Beschreibung array ("key" => "value", ...); Casts a ...

PHP-Schablonen-Systeme - Schablonen-Systeme

PHP-Schablonen-Systeme - Schablonen-Systeme

Können die Menge an Arbeit reduzieren, die Sie für die Erstellung einer Website in PHP benötigen. Wenn Sie eine Website erstellen, verwenden Sie häufig das gleiche Layout für die gesamte Website. Sie haben eine obere Portion, vielleicht mit einem Menü; ein Hauptinhaltsbereich; und ein unterer Teil, vielleicht mit Links oder ...

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Die ALTER Query wird verwendet, um die Struktur von eine MySQL-Datenbank. In dieser Liste wird die Syntax für die Änderungen angezeigt, die Sie wahrscheinlich vornehmen möchten: ADD-Spaltenbezeichnung ALTER-Spaltenname SET-DEFAULT-Wert ALTER-Spaltenname DROP DEFAULT CHANGE-Spaltenname newcolname-Definition DROP-Spaltenname MODIFY-Spaltenname RENAME newtablename

Die Wahl des Herausgebers

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Mit NoSQL haben Sie Hochgeschwindigkeits-Caching. Stellen Sie sich vor, Sie sind Bankangestellte und arbeiten mit drei anderen Kollegen zusammen. Jeder hat eine Reihe von Leuten, die bedient werden sollen. Einer der Kunden bleibt jedoch in der Schlange, um zu fragen, ob sein Scheck bereits eingelöst und der Betrag seinem Konto gutgeschrieben wurde. Wenn Sie ...

Wie man Einsichten aus Big Data kommuniziert - Dummies

Wie man Einsichten aus Big Data kommuniziert - Dummies

Big Data kann helfen, Einblicke zu gewinnen. Unternehmen gewinnen Wettbewerbsvorteile, wenn die richtigen Informationen zur richtigen Zeit an die richtigen Leute geliefert werden. Dies bedeutet, Erkenntnisse und Informationen aus Daten zu extrahieren und sie Entscheidungsträgern auf eine Weise zu vermitteln, die sie leicht verstehen. Schließlich sind Menschen weniger wahrscheinlich zu handeln, wenn sie ...

Zookeeper und HBase Reliability - dummies

Zookeeper und HBase Reliability - dummies

Zookeeper ist ein verteiltes Cluster von Servern, das gemeinsam zuverlässige Koordinations- und Synchronisationsdienste für Cluster-Anwendungen bereitstellt. .. Zugegeben, der Name "Zookeeper" mag auf den ersten Blick eine seltsame Wahl sein, aber wenn Sie verstehen, was es für einen HBase-Cluster tut, können Sie die Logik dahinter sehen. Beim Erstellen und Debuggen von verteilten Anwendungen ...