Video: Week 0 2025
Ditt oppdrag, hvis du bestemmer deg for å akseptere det, er å lage et Java-program som kan spille et spill med Tic-Tac-Toe med brukeren.
Som du sikkert vet, er Tic-Tac-Toe et enkelt spill som vanligvis spilles med papir og blyant. Først gjør du et enkelt 3 x 3 rutenett på papiret. Deretter veksler to spillere alternative svinger ved å markere Xs og Os i tomme mellomrom på rutenettet. Den første spilleren som lager tre av hans eller hennes karakterer i en horisontal, vertikal eller diagonal rad vinner. Hvis alle mellomrom i rutenettet er fylt før en spiller merker tre på rad, er spillet uavgjort.
Her er reglene og instruksjonene for denne utfordringen:
-
Datamaskinen spiller mot mennesket. Mennesket beveger seg først og er X. Datamaskinen er O.
-
Programmet skal begynne med å vise en kort velkomstmelding, og da bør du spørre spilleren for hans eller hennes første trekk. For eksempel:
Velkommen til Tic-Tac-Toe. Vennligst skriv inn ditt første trekk:
-
For å tegne rutene i rutenettet, bruk bokstavene A, B og C for kolonnene og tallene 1, 2 og 3 for radene, slik som dette:
Når mennesket går inn, bør programmet vise den nåværende statusen til brettet på konsollen.Bruk X til å markere menneskets skuespill og O for å markere datamaskinens skuespill. Bruk vertikale strektegn (funnet på tastaturet med tilbakeslaget tegn, like over Enter-tasten) og bindestrek for å tegne brettet i et enkelt grid.
-
For eksempel, hvis brukeren har angitt A1 som sin første flytt, viser programmet følgende:
X | | --- | --- | --- | | --- | --- | --- | |Etter menneskets trekk bestemmer programmet sitt trekk, kunngjør det til brukeren, viser et oppdatert kort, og ber om brukerens trekk.
Du kan for eksempel se dette:
-
Jeg skal spille A2: X | O | --- | --- | --- | | --- | --- | --- | | Vennligst skriv inn ditt neste trekk:
Spill fortsetter til en spiller har scoret tre på rad eller alle firkantene er fylt uten vinner. Ditt program må kunne avgjøre om en spiller har scoret tre på rad og vant spillet. (Dette er den vanskeligste delen av denne programmeringsutfordringen.)
Når spillet er over, viser programmet en melding som viser resultatet av spillet: "Du slo meg! "Hvis den menneskelige spilleren vinner," slo jeg deg! "Hvis dataspilleren vinner, eller" Det er uavgjort! "Hvis kampen avsluttes.
-
Menneskelige og dataspillere kan spille i bare de rutene som ikke allerede er okkupert av en spiller.
-
Programmet avsluttes når spillet er vunnet av en spiller eller spillet er uavgjort. Hvis du vil spille igjen, må du kjøre programmet igjen.
-
Merk at du er fri til å bruke hvilken som helst metode du vil bestemme hvordan datamaskinen skal gjøre det. Jeg foreslår at du alltid har datamaskinen på det første tomme torget. Dette er åpenbart ikke den beste måten å spille Tic-Tac-Toe på, og du har ingen problemer med å slå datamaskinen hver gang du spiller. Men å velge denne enkle spillestrategien, kan du fokusere på andre aspekter av programmeringen, for eksempel hvordan du internt representerer nettet og hvordan du skal bestemme når en spiller har vunnet spillet eller når kampen er avsluttet.
-
(I "Java Programmeringsutfordring: Legge til arrays til det enkle Tic-Tac-Toe-programmet" blir du bedt om å komme opp med en bedre strategi for programmet for å bestemme spillene sine.)
Her er et eksempel på Konsollvisningen for et komplett spill:
Velkommen til Tic-Tac-Toe. Vennligst skriv inn ditt første trekk:
A1
X | | --- | --- | --- | | --- | --- | --- | | Jeg skal spille på A2: X | O | --- | --- | --- | | --- | --- | --- | | Vennligst skriv inn ditt neste trekk: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Jeg skal spille på A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Vennligst skriv inn ditt neste trekk: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Du slo meg! Her er noen tips for å komme i gang: Den beste måten å representere rutenettet på er med en matrise. Bruk for øyeblikket ni variabler, kalt A1, A2, A3, B1, B2, B3, C1, C2 og C3.
Hvis du bruker int-typen for gridvariablene, kan du deretter bruke 1 for å indikere at en firkant inneholder en X og 2 for å indikere at en firkant inneholder en O.
-
Åtte mulige rader kan føre til en seier. En spiller vinner hvis noen av de følgende kombinasjonene av firkanter 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
-
Det er to måter å avgjøre om spillet er uavgjort. Den første er å sjekke alle ni rutene: Hvis ingen av rutene er tomme og ingen spiller har vunnet, er spillet uavgjort. Den andre er å telle trekkene: Hvis ni trekk er gjort og ingen spiller har vunnet, er spillet uavgjort.
Du finner en løsning på denne programmeringsutfordringen på fanen Nedlastinger i
-
Java All-in-One for Dummies,
4. utgave produktside. Lykke til!
