Video: Java Tutorial for Beginners [2019] 2025
I Java Programmeringsudfordring: En simpel Tic-Tac-Toe-spil blev du udfordret til at skrive et konsolbaseret program, der spiller det enkle spil Tic-Tac-Toe. Java-programmeringsudfordringen her er at bruge Swing til at tilføje et grafisk brugergrænseflade (GUI) til programmet. GUI'en skal ligner den her vist.
Spillet er enkelt. Den menneskelige spiller spiller først ved at klikke på et af kvadraterne. Kvadratet, der klikkes af det menneskelige, viser et stort X. Efter de menneskelige spiller bestemmer programmet, om mennesket har vundet eller tvunget en uafgjort. Hvis det er tilfældet, vises en besked, bordet er nulstillet, og et nyt spil begynder. Hvis ikke, vælger computeren et træk og markerer dets firkant med en stor O.
Programmet afgør derefter, om computeren har vundet spillet. Hvis ja, viser programmet en besked, nulstiller brættet og starter et nyt spil. Hvis ikke, spiller den menneskelige spiller igen. Dette fortsætter indtil en spiller vinder eller alle kvadraterne er fyldt.
Dit program skal bruge den samme TicTacToeBoard klasse, du opretter til Java Programmering Challenge: Tilføjelse af klasse til det simple Tic-Tac-Toe-program. Med andre ord skal den gennemføre nøjagtig samme metoder. For nemheds skyld gentages disse metoder i den følgende tabel.
Constructor | Beskrivelse |
---|---|
TicTacToeBoard | Opretter en ny TicTacToeBoard med alle tommer tomme. |
Metode | Beskrivelse |
void reset () | Gendanner status for hver firkant for at tømme. |
void playAt (String square, int player) | Markerer det angivne firkant (A1, A2, A3, B1, B2, B3, C1, C2 eller C3) for den angivne afspiller (1 for X, 2 for O). Kaster ulovligArgumentException, hvis firkant ikke er en af de tilladte værdier, afspilleren ikke er 1 eller 2, eller den angivne firkant er ikke tom. |
int isGameOver () | Bestemmer, om spillet er overstået. Returnerer 0, hvis spillet ikke er overstået, 1 hvis X har vundet spillet, 2 hvis O har vundet spillet, og 3 hvis spillet er uafgjort. Spillets afslutningsbetingelser er som følger:
1: Hvis en række, kolonne eller diagonal indeholder alle X'er. 2: Hvis en række, kolonne eller diagonal indeholder alle O'er. 3: Hvis der ikke er tomme pladser, har hverken X eller O vundet. |
int getNextMove () | Returnerer et helt tal, der repræsenterer det næste træk til computerens modstander. Denne metode bør gøre en rudimentær indsats for at vælge et godt træk i henhold til følgende strategi:
* Hvis midten (kvadrat B2) er tom, skal du spille midtfeltet. * Hvis midten ikke er tomt, men en af de fire hjørner (firkanterne A1, A3, C1 eller C3) er tomme, skal du spille et af hjørnerne (det betyder ikke noget hvilket). * Hvis midten ikke er tom, og ingen hjørner er tomme, skal du spille en af kanterne (kvadrater A2, B1, B3 eller C2). |
String toString () | Returnerer en streng, som repræsenterer styrets nuværende status. Strengen indeholder nye linjer for at vise rækker såvel som separatorlinjer på separate konsollinjer, som i dette eksempel:
O | | O - | - | - | X | - | - | - | X | |
Du finder løsningen på denne udfordring på fanen Downloads i Java All-in-One for Dummies, 4. udgave produktside.
Held og lykke!