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] 2024

Video: Java Tutorial for Beginners [2019] 2024
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

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld fotoredigeringsfunktion tilbyder bundter af værktøjer, som du kan bruge at redigere dine billeder, fra korrektionsværktøjer til fastsættelse af farve og klarhed til filtre, lag og meget mere for at ændre eksisterende fotos eller skabe helt originale billeder fra bunden. Men alle disse værktøjer gør også Komplet fotoredigeringstilstand kompleks. Du kan flytte ind i ...

Generelle blandingsformer i Photoshop Elements - dummies

Generelle blandingsformer i Photoshop Elements - dummies

Elementer spænder over 25 blandingstilstande. Blend modes påvirker hvordan farver interagerer mellem lag og også hvordan farver interagerer, når du anvender maling på et lag. Ikke alene gør blandingstilstande interessante effekter, men du kan også nemt anvende, redigere eller fjerne blandingsfunktioner uden at røre dine billedpixel. De forskellige blandingstilstande ...

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriindstillinger hjælpe med at definere, hvordan dine figurer ser ud. Klik på nedpegepilen i værktøjsindstillingerne i Elements for at få adgang til de geometriske indstillinger, der beskrives i det følgende. Rektangulære og afrundede rektangel geometriske indstillinger Her er geometriske indstillinger for rektangel og afrundede rektangelformer: Ubegrænset: Giver dig mulighed for at få fri tøj til at tegne en ...

Valg af editor

Sådan bygger du tabeller i HTML5 - dummies

Sådan bygger du tabeller i HTML5 - dummies

Sommetider indeholder din webside data bedst fremlagt i et bord . Du kan bruge HTML5's komplette bordsystem til at oprette tabeller som den i dette eksempel: Den grundlæggende struktur i et bord i HTML-format er rimeligt let at forstå; Tjek koden, der oprettede tabellen i eksemplet:

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Der er situationer, hvor man kun vil en enkelt kopi af et baggrundsbillede på dit CSS3-websted. Det kan være, at billedet du har brugt er noget, der ikke gentager sig godt eller er stort nok til, at du virkelig ikke vil have det gentaget. Følgende procedure viser en teknik, du kan bruge til at fortælle ...

Hvordan man opbygger en webside skabelon fra scratch-dummies

Hvordan man opbygger en webside skabelon fra scratch-dummies

Standardværktøjet på tværs af digitalt agenturer og interne afdelinger til opbygning af website grafik er Adobe Photoshop. Selvom fyrværkeri er optimeret og målrettet til at producere web-grafiske kildefiler, er det bare ikke fanget, sandsynligvis på grund af den massive genoplæringsindsats ville det medføre, at hele afdelinger gør omskifteren. At oprette et nyt ...

Valg af editor

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Som flere og flere mennesker finder ud af din ny LinkedIn-gruppe, og som medlemmer begynder at deltage, kan du opleve, at nogle af de personer, der har klikket på linket for at deltage, ikke er på din forhåndsgodkendte liste. Måske er de mennesker, du ikke har forstået var på LinkedIn, eller du var ikke klar over, at de var gyldige grupper ...

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Ud over et profilbillede giver LinkedIn brugere mulighed for at forbedre de visuelle sociale markedsføringselementer i deres profiler ved at tilføje billeder til deres profilprofil. Du kan tilføje billeder til ethvert afsnit i din LinkedIn-profil. Tilføjelse af billeder til din profil kan hjælpe dig med at fortælle din historie visuelt og ...

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

, Når du har opfyldt kravene til oprettelse en virksomhedsside på LinkedIn, er det tid til at komme i gang ved at tilføje selskabets side til Linkedins system. For at oprette din virksomhedsside skal du blot følge disse trin: