Hjem Personlig finansiering Java Programmeringsudfordring: Tilføjelse af klasse til det enkle Tic-Tac-Toe-program

Java Programmeringsudfordring: Tilføjelse af klasse til det enkle Tic-Tac-Toe-program

Video: Java Tutorial for Beginners [2019] 2025

Video: Java Tutorial for Beginners [2019] 2025
Anonim

I denne udfordring forbedrer du dit Tic-Tac-Toe-spil ved at tilføje en Java-programmeringsklasse, som gør det muligt for programmet at gøre en rudimentær indsats mod strategi, når computeren skal bestemmes flytter sig.

I Java Programmering Udfordring: En simpel Tic-Tac-Toe-spil, du er udfordret til at skrive et program til at spille det enkle spil Tic-Tac-Toe. I denne udfordring ændrer du kildekoden til din tidligere løsning for at hjælpe computeren med at strategisere.

Selvom reglerne i spillet er meget enkle, kan det være komplekst at oprette et computerprogram, der kan spille spillet. En række potentielt komplicerede detaljer skal indarbejdes i programmet. Specielt:

  • Programmet skal have en måde at internt repræsentere status for hver af de ni firkanter, der udgør Tic-Tac-Toe-bordet.

  • Programmet skal give mulighed for at registrere et flyt for hver spiller og skal sikre, at hvert træk er gyldigt (for eksempel må en spiller ikke spille i en firkant, der allerede er optaget af en X eller en O.

  • Programmet skal kunne bestemme, hvornår en spiller har vundet ved at se på alle otte af de mulige tre-i-en-række kombinationer: De tre rækker, de tre kolonner, og de to diagonaler.

  • Programmet skal også kunne bestemme, hvornår spillet er uafgjort - det vil sige når alle ni pladser er blevet spillet og ingen af ​​spillerne har vundet.

Samtidig er programmet skal klare detaljerne i at interagere med brugeren ved at bede brugeren om at komme ind i hans eller hendes bevægelse, annoncerer computerspil, viser en opdateret repræsentation af brættet efter hvert spil og erklærer en vinder eller annoncerer et uafgjort, når spillet er slut.

I denne udfordring bliver du bedt om at adskille disse to elementer i Tic-Tac-Toe-programmet: den del af e-program, der styrer status og fremskridt i spillet og den del af programmet, der håndterer interaktionen med brugeren. Du vil gøre det ved at oprette en klasse ved navn TicTacToeBoard, som giver metoder, der kan kaldes til at spille et komplet spil. Derefter bliver du bedt om at skrive et program, der bruger klassen TicTacToeBoard, så en menneskelig modstander kan spille et spil Tic-Tac-Toe mod computeren.

Fra brugerens perspektiv vil dette program fungere identisk med det program, der er oprettet for at løse den enkle Tic-Tac-Toe spiludfordring med en forskel: For denne version af spillet gør programmet en rudimentær indsats mod strategi, når man bestemmer computerens bevægelser.Computeren spilles ikke perfekt, så det er stadig let beatable. Men det gør en indsats ud over blot at spille i det første tomme firkant, det ser.

I nedenstående tabel vises de metoder, som klassen TicTacToeBoard skal implementere. Husk, du skal oprette to. java-filer til at løse denne udfordring. Den første, TicTacToeBoard. java, implementerer klassen TicTacToeBoard. Den anden, der hedder simpelthen TicTacToe. java, er det program brugeren vil køre for at spille et spil Tic-Tac-Toe mod computeren.

TicTacToeBoard Class
Constructor Beskrivelse
TicTacToeBoard Opretter en ny TicTacToeBoard med alle tommer tomme.
Metode Beskrivelse
void reset () Gendanner status for hver firkant for at tømme.
int getSquare (String square) Returnerer status for kvadratet angivet med kvadrat, som skal være en af ​​strengene A1, A2, A3, B1, B2, B3, C1, C2 eller C3. Returnerer 0, hvis firkanten er tom, 1 hvis den indeholder en X og 2, hvis den indeholder en O. Kaster ulovligArgumentException, hvis firkant ikke er en af ​​de tilladte værdier.
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 endelige forhold 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 Os.

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 nybegrænsede tegn for at vise rækkerne samt separatorlinjer på separate konsollinjer, som i dette eksempel:

O | | O

- | - | -

| X |

- | - | -

| X |

Hvis du er stumpet, kan du finde løsningen på fanen Downloads i Java All-in-One for Dummies, 4. udgave produktside.

Held og lykke!

Java Programmeringsudfordring: Tilføjelse af klasse til det enkle Tic-Tac-Toe-program

Valg af editor

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Du kan Brug QuickBooks Online (QBO) Check vinduet til at skrive en check for at betale et faktura, du tidligere indtastede - noget, du ikke kan gøre i QuickBooks desktop produkt. Brug ikke Check-transaktionen, hvis du planlægger at betale flere regninger. Hvis du vælger en betalingsmodtager, for hvem der foreligger en udestående faktura, QBO ...

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Vælger skrivefakturaer fra revisionsværktøjerne menuen i QBOA viser siden Skriv ud fakturaer, som giver dig mulighed for at se fakturaer, du måske vil afskrive, og derefter skrive dem til en konto efter eget valg. Øverst på siden indstiller du filtre for at få vist de fakturaer, du vil have ...

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Din klient importerer de ændringer, som du ' har lavet i revisorens kopi af QuickBooks 2012-datafilen i hendes arbejdskopi af datafilen. For at gøre dette vælger klienten filen Arkiv → Revisorens Kopi → Klientaktiviteter → Kommandoen Import Revisorens Ændringer. QuickBooks viser dialogboksen Importer regnskabsførerens ændringer. For at bruge importkontoens ændringer ...

Valg af editor

Brug Flash med Nature Photography - dummies

Brug Flash med Nature Photography - dummies

Som regel afhænger du af naturlig belysning til naturfotografering. Du kan dog bruge flash-flash eller en ekstra flash-enhed til at øge naturlig belysning. On-flash-kamera De fleste digitale kameraer leveres med en flash på kameraet. Blitzenheden springer op, når det er nødvendigt. Du kan også aktivere flash på kameraet, når du skal tilføje en ...

Brug tredjeparts rå software til HDR fotografi - dummies

Brug tredjeparts rå software til HDR fotografi - dummies

Du kan købe eller downloade et væld af Råredigerere og konvertere fra tredjepart, der hjælper dig med at lave billeder med høj dynamisk rækkevidde. Hvis du er utilfreds med din nuværende software og vil prøve noget nyt, skal du hænde på en eller flere af de programmer, der er angivet i tabellen. Rå redaktører fra tredjepart Navn URL Platform (er) Freeware? ...

Brug dekorative accenter i mad stil og madfotografi - dummies

Brug dekorative accenter i mad stil og madfotografi - dummies

Når fødevaren alene ikke skaber Det drama eller den intrigue, du vil have i din fotografering med dekorative accenter - af farve, form eller tekstur - kan give dine billeder den ekstra effekt, du leder efter. Accenter er forbedringer af fødevarematerialet, og selvom de tjener formålet med at ophæve maden, er de ...

Valg af editor

Sådan finder du formatering i Word 2007 - dummies

Sådan finder du formatering i Word 2007 - dummies

Du kan bruge kommandoen Find til at skure dit Word 2007-dokument til formatering af oplysninger. Hvis du f.eks. Kun vil finde de forekomster af ordet, der ligger i fed skrift, kan du gøre det. Dette eksempel søger efter teksten gåseæg med en skriftstørrelse på 24 point i en ...

Hvordan man finder tekst i Word 2016 - dummies

Hvordan man finder tekst i Word 2016 - dummies

Ikke gider med båndet! For at finde tekst i dit Word 2016-dokument, tryk Ctrl + F, den mindeværdige tastaturgenvej til kommandoen Find. Du ser navigationsruden, svarende til hvad der vises her. Navigationsruden. Skriv den tekst, du vil lokalisere, i feltet Søg dokument. Når du skriver forekomster af teksten ...

Hvordan man finder stilarter i Word 2016 - dummies

Hvordan man finder stilarter i Word 2016 - dummies

Stilarter bor på Word 2016 Home-fanen navngivet Styles-gruppe, som vist her. Hvad du ser på båndet er Style Gallery, som kan udvides til en fuld menu med stilvalg. Hvor Word-stilarter lurer. Klik på dialogboksen launcher i det nederste højre hjørne af Styles-gruppen ...