Zuhause Persönliche Finanzen Java Programming Challenge: Hinzufügen von Klassen zum einfachen Tic-Tac-Toe-Programm

Java Programming Challenge: Hinzufügen von Klassen zum einfachen Tic-Tac-Toe-Programm

Video: Coding Challenge #4: Purple Rain in Processing 2025

Video: Coding Challenge #4: Purple Rain in Processing 2025
Anonim

In dieser Herausforderung verbessern Sie Ihr Tic-Tac-Toe-Spiel, indem Sie eine Java-Programmierklasse hinzufügen, die es dem Programm ermöglicht, rudimentäre Strategien zu entwickeln, wenn bewegt sich.

In der Java-Programmier-Challenge: Ein einfaches Tic-Tac-Toe-Spiel. Du musst ein Programm schreiben, um das einfache Tic-Tac-Toe-Spiel zu spielen. In dieser Herausforderung ändern Sie den Quellcode für Ihre vorherige Lösung, um die Strategie des Computers zu unterstützen.

Obwohl die Spielregeln sehr einfach sind, kann die Erstellung eines Computerprogramms, das das Spiel spielen kann, komplex sein. Eine Reihe von möglicherweise komplizierten Details müssen in das Programm aufgenommen werden. Insbesondere:

  • Das Programm muss eine Möglichkeit haben, den Status jedes der neun Quadrate, aus denen das Tic-Tac-Toe-Board besteht, intern darzustellen.

  • Das Programm muss eine Möglichkeit bieten, einen Zug für einen Spieler zu registrieren und muss sicherstellen, dass jeder Zug gültig ist (zum Beispiel darf ein Spieler nicht in einem Feld spielen, das bereits von einem X oder einem O besetzt ist).

  • Das Programm muss in der Lage sein zu bestimmen, wann ein Spieler gewonnen hat, indem es alle acht der drei möglichen Kombinationen betrachtet: Die drei Reihen, die drei Spalten und die beiden Diagonalen.

  • Das Programm muss auch in der Lage sein zu bestimmen, wann das Spiel unentschieden ist - das heißt, wenn alle neun Felder gespielt wurden und keiner der Spieler gewonnen hat.

Zur gleichen Zeit muss die Details der Interaktion mit dem Benutzer verwalten, indem er den Benutzer auffordert, seinen Zug einzugeben, das Spiel des Computers anzukündigen, nach jedem Spiel eine aktualisierte Darstellung des Spielbretts anzuzeigen und einen Gewinner zu deklarieren oder eine Ziehung anzukündigen, wenn das Spiel vorbei ist.

In dieser Übung werden Sie gebeten, diese beiden Elemente des Tic-Tac-Toe-Programms zu trennen: Das Programm verwaltet den Status und den Fortschritt des Spiels und den Teil des Programms, der die Interaktion mit dem Benutzer übernimmt. Sie werden das tun, indem Sie eine Klasse namens TicTacToeBoard erstellen, die Methoden bereitstellt, die aufgerufen werden können, um ein komplettes Spiel zu spielen. Dann werden Sie gebeten, ein Programm zu schreiben, das die TicTacToeBoard-Klasse verwendet, um einem menschlichen Gegner zu erlauben, ein Tic-Tac-Toe-Spiel gegen den Computer zu spielen.

Aus Sicht des Benutzers funktioniert dieses Programm identisch mit dem Programm, das erstellt wurde, um die einfache Tic-Tac-Toe-Spielherausforderung zu lösen, mit einem Unterschied: Für diese Version des Spiels unternimmt das Programm rudimentäre Anstrengungen zur Strategie bei der Bestimmung. der Computer bewegt sich.Der Computer spielt nicht perfekt, also ist er immer noch leicht zu schlagen. Aber es macht etwas Mühe, nicht nur auf dem ersten leeren Platz zu spielen, den es sieht.

Die folgende Tabelle listet die Methoden auf, die die TicTacToeBoard-Klasse implementieren sollte. Denken Sie daran, dass Sie zwei erstellen müssen. Java-Dateien, um diese Herausforderung zu lösen. Das erste, TicTacToeBoard. Java implementiert die TicTacToeBoard-Klasse. Die zweite, einfach TicTacToe genannt. Java, ist das Programm, das der Benutzer ausführen wird, um ein Spiel von Tic-Tac-Toe gegen den Computer zu spielen.

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.
int getSquare (String square) Gibt den Status des durch square angegebenen Quadrats zurück, das einer der Strings A1, A2, A3, B1, B2, B3, C1, C2 oder C3 sein muss. Gibt 0 zurück, wenn das Quadrat leer ist, 1, wenn es ein X enthält, und 2, wenn es ein O enthält. Löst IllegalArgumentException aus, wenn square nicht zu den zulässigen Werten gehört.
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 Spielbeendigungsbedingungen lauten wie folgt:

1: Enthält eine beliebige Zeile, Spalte oder Diagonale alle Xs.

2: Enthält eine beliebige Zeile, Spalte oder Diagonale alle Os.

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 (egal 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 anzuzeigen, sowie Trennlinien in separaten Konsolenlinien, wie in diesem Beispiel:

O | | O

- | - | -

| X |

- | - | -

| X |

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

Viel Glück!

Java Programming Challenge: Hinzufügen von Klassen zum einfachen Tic-Tac-Toe-Programm

Die Wahl des Herausgebers

Wie man Dateien in C ++ kopiert - Dummies

Wie man Dateien in C ++ kopiert - Dummies

Ah, eine Datei kopieren - etwas so einfaches, es passiert alles Zeit. Kopiere diese Datei dorthin; Kopieren Sie diese Datei hier. Aber was genau passiert, wenn Sie eine Datei kopieren? Sie erstellen tatsächlich eine neue Datei und füllen diese mit dem gleichen Inhalt wie die Originaldatei. Und wie machst du das? Nun, ...

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Wenn Sie ein Verzeichnis erstellen möchten, können Sie das MKdir Funktion. Wenn die Funktion das Verzeichnis für Sie erstellen kann, gibt sie eine 0 zurück. Andernfalls wird ein Wert ungleich Null zurückgegeben. (Wenn Sie es ausführen, erhalten Sie eine -1, aber Ihre beste Wette - immer - ist es, gegen 0 zu testen.) Hier ist einige ...

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Mit einer mathematischen Vorlage erstellt, die man normalerweise benötigt Zugriff auf eine Vielzahl von Berechnungen, aber nur jeweils eine oder zwei dieser Berechnungen. Zum Beispiel, wenn jemand Ihre Hypothek berechnet, muss er die Amortisationsrechnung nicht kennen. Die Person kann jedoch die Amortisationsberechnung benötigen, wenn Sie mit ...

Die Wahl des Herausgebers

ASVAB: Lesen für die Studie - Dummies

ASVAB: Lesen für die Studie - Dummies

Lesen für die Zwecke des Studiums der ASVAB ist eine andere Art des Lesens. Leseverständnis erfordert nur, dass Sie Informationen lange genug im Kurzzeitgedächtnis speichern, um einige Sekunden später eine Frage zu beantworten. Zum Lesen für die Zwecke des Studiums müssen Sie wichtige Informationen in Ihr Langzeitgedächtnis einpflegen - ...

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

Als wäre Algebra nicht anspruchsvoll genug, einige Fragen zur Der Subtest Mathematik auf dem ASVAB wird auch eine Ungleichheit einwerfen - nur um sicherzustellen, dass Sie aufmerksam sind. Wie erkennst du eine Ungleichheit? Halten Sie Ausschau nach Fragen mit mehr als oder weniger als Symbolen oder nach Graphen, die eine Zahlenlinie mit einem ...

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

Der Subtest Mathematikwissen auf dem ASVAB wird Fragen beinhalten, die Sie fragen mit Teilen eines Ganzen oder Fraktionen arbeiten. Diese Fragen können das Multiplizieren, Dividieren, Addieren, Subtrahieren und Konvertieren von Brüchen beinhalten, ähnlich den folgenden Übungsfragen. Übungsfragen Welche Fraktionen sind nicht gleichwertig? Gegeben einfach den Ausdruck. Antworten und Erklärungen Das richtige ...

Die Wahl des Herausgebers

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Adobe besitzt sowohl Flash als auch Dreamweaver Daher finden Sie großartige Unterstützung für Flash-Dateien in Dreamweaver. Das Dialogfeld "FLV einfügen" erleichtert das Festlegen von Parametern für Flash. Dreamweaver erkennt sogar automatisch die Größe von Flash-Videodateien. Sie können Flash auch zum Erstellen und Einfügen von Audiodateien verwenden, wobei nur der Player angezeigt wird.

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Dreamweaver bietet Werkzeuge zum Erstellen von Bildern Einstellungen, einschließlich der Helligkeit und des Kontrastes. Durch die Anpassung der Bildhelligkeit können Sie die Gesamtlichtmenge in einem Bild ändern. Kontrast steuert den Unterschied zwischen hellen und dunklen Bereichen eines Bildes. Wenn Sie die Dreamweaver-Bearbeitungswerkzeuge verwenden, wird das Bild dauerhaft geändert, wenn die Seite ...

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Wenn Sie Ihrer Website ein Bild hinzufügen, erscheint anfangs fast magisch, weil der Prozess mit Dreamweaver so einfach ist. Die Herausforderung bei Webgrafiken besteht darin, sie nicht zu Ihren Seiten hinzuzufügen, sondern gut aussehende Bilder zu erstellen, die schnell im Browser Ihres Viewers geladen werden. Sie benötigen ein anderes Programm wie Photoshop, Photoshop Elements oder Fireworks, um ...