Video: Java Tutorial for Beginners [2019] 2025
Din mission, hvis du vælger at acceptere det, er at oprette et Java-program, der kan spille et spil Tic-Tac-Toe med brugeren.
Som du sikkert ved, er Tic-Tac-Toe et simpelt spil som regel spillet med papir og blyant. For det første laver du et simpelt 3 x 3 gitter på papiret. Så to spillere skifter omdrejninger ved at markere Xs og Os i tomme mellemrum på nettet. Den første spiller, der laver tre af hans eller hendes karakterer i en vandret, lodret eller diagonal række vinder. Hvis alle rum i nettet er fyldt, før en spiller markerer tre i træk, er spillet uafgjort.
Her er reglerne og vejledningen til denne udfordring:
-
Computeren spiller mod mennesket. Mennesket bevæger sig først og er X. Computeren er O.
-
Programmet skal begynde med at vise en kort velkomstmeddelelse, og derefter skal du spørge spilleren for hans eller hendes første træk. For eksempel:
Velkommen til Tic-Tac-Toe. Indtast venligst dit første skridt:
-
For at angive kvadraterne i nettet skal du bruge bogstaverne A, B og C for kolonnerne og tallene 1, 2 og 3 til rækkerne, som denne:
Når mennesket går i bevægelse, skal programmet vise den aktuelle status på kortet på konsollen.Brug X til at markere menneskets skuespil og O for at markere computerens skuespil. Brug lodret stregtegn (findes på tastaturet med backslash-karakteren, lige over Enter-tasten) og bindestreger for at tegne brættet i et simpelt rutenet.
-
Hvis brugeren f.eks. Har indtastet A1 som hans første bevægelse, viser programmet følgende:
X | | --- | --- | --- | | --- | --- | --- | |Efter menneskets bevægelse bestemmer programmet dets bevægelse, annoncerer det til brugeren, viser et opdateret kort og beder derefter om brugerens bevægelse.
Du kan f.eks. Se dette:
-
Jeg vil spille A2: X | O | --- | --- | --- | | --- | --- | --- | | Indtast venligst dit næste skridt:
Afspilningen fortsætter, indtil en spiller har scoret tre i træk eller alle firkanter er blevet fyldt uden vinder. Dit program skal kunne afgøre, om en spiller har scoret tre i træk og vandt spillet. (Dette er den sværeste del af denne programmeringsudfordring.)
Når spillet er slut, viser programmet en meddelelse, der angiver resultatet af spillet: "Du slog mig! "Hvis den menneskelige spiller vinder," slog jeg dig! "Hvis computerspilleren vinder, eller" det er uafgjort! "Hvis kampen slutter i uafgjort.
-
Menneske- og computerspillerne kan kun spille i de kvadrater, der ikke allerede er optaget af nogen af spillerne.
-
Programmet slutter, når spillet bliver vundet af en af spillerne eller spillet er uafgjort. Hvis du vil spille igen, skal du køre programmet igen.
-
Bemærk, at du er fri til at bruge en hvilken som helst metode, du ønsker at bestemme, hvordan computeren skal gøre dens bevægelser. Jeg foreslår, at du altid har computeren i det første tomme firkant. Det er selvfølgelig ikke den bedste måde at spille Tic-Tac-Toe på, og du har ingen problemer med at slå computeren hver gang du spiller. Men ved at vælge denne enkle spillestrategi kan du fokusere på andre aspekter af programmeringen, f.eks. Hvordan man internt repræsenterer nettet og hvordan man bestemmer, hvornår en spiller har vundet spillet eller når spillet er afsluttet i uafgjort.
-
(I "Java Programmeringsudfordring: Tilføjelse af arrays til det enkle Tic-Tac-Toe-program" bliver du bedt om at komme frem til en bedre strategi for programmet til at bestemme dets spiller.)
Her er et eksempel på Konsolvisningen til et komplet spil:
Velkommen til Tic-Tac-Toe. Indtast venligst dit første skridt:
A1
X | | --- | --- | --- | | --- | --- | --- | | Jeg vil spille på A2: X | O | --- | --- | --- | | --- | --- | --- | | Indtast venligst dit næste træk: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Jeg vil spille på A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Indtast venligst dit næste træk: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Du slog mig! Her er et par tips til at komme i gang: Den bedste måde at repræsentere nettet på er med en matrix. Brug nu ni variabler med navnet A1, A2, A3, B1, B2, B3, C1, C2 og C3.
Hvis du bruger int-typen til gittervariablerne, kan du derefter bruge 1 til at angive, at en firkant indeholder en X og 2 for at angive, at en firkant indeholder en O.
-
Otte mulige rækker kan føre til en sejr. En spiller vinder, hvis en af følgende kombinationer af kvadrater er enten 1 (for X) eller 2 (for O):
-
A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
-
Der er to måder at afgøre, om spillet er uafgjort. Den første er at kontrollere alle ni firkanter: Hvis ingen af firkanterne er tomme, og ingen af spillerne har vundet, er spillet uafgjort. Den anden er at tælle bevægelserne: Hvis ni bevægelser er blevet foretaget, og ingen spiller har vundet, er spillet uafgjort.
Du kan finde en løsning på denne programmeringsudfordring på fanen Downloads i
-
Java All-in-One for Dummies,
4. udgave produktside. Held og lykke!