Hjem Personlig finansiering Java Programmeringsutfordring: Legge klasse til det enkle Tic-Tac-Toe-programmet

Java Programmeringsutfordring: Legge klasse til det enkle Tic-Tac-Toe-programmet

Video: Java Tutorial for Beginners [2019] 2025

Video: Java Tutorial for Beginners [2019] 2025
Anonim

I denne utfordringen forbedrer du ditt Tic-Tac-Toe-spill ved å legge til en Java-programmeringsklasse, som gjør at programmet kan gjøre en rudimentær innsats mot strategi når du bestemmer datamaskinens beveger seg.

I Java Programming Challenge: En enkel Tic-Tac-Toe-spill du utfordres til å skrive et program for å spille det enkle spillet Tic-Tac-Toe. I denne utfordringen, endrer du kildekoden for din tidligere løsning for å hjelpe deg med å strategisere datamaskinen.

Selv om reglene i spillet er veldig enkle, kan det være komplisert å lage et dataprogram som kan spille spillet. En rekke potensielt kompliserte detaljer må inkorporeres i programmet. Spesielt:

  • Programmet må ha en måte å internt representere statusen til hver av de ni rutene som utgjør Tic-Tac-Toe-bordet.

  • Programmet må gi en måte å registrere et trekk for hver spiller, og må sørge for at hvert trekk er gyldig (for eksempel kan en spiller ikke spille i en firkant som allerede er opptatt av en X eller en O.

  • Programmet må kunne bestemme når en spiller har vunnet ved å se på alle åtte av de mulige tre-i-rad-kombinasjonene: De tre radene, de tre kolonnene, og de to diagonalene.

  • Programmet må også kunne bestemme når spillet er uavgjort - det vil si når alle ni rutene er spilt og ingen av spillerne har vunnet.

Samtidig har programmet må håndtere detaljene i samspillet med brukeren ved å be brukeren å gå inn i hans eller hennes trekk, kunngjøre datamaskinens spill, vise en oppdatert representasjon av brettet etter hvert spill, og erklære en vinner eller kunngjør uavgjort når spillet er over.

I denne utfordringen blir du bedt om å skille disse to elementene i Tic-Tac-Toe-programmet: den delen av e program som styrer status og fremdrift av spillet og den delen av programmet som håndterer samspillet med brukeren. Du vil gjøre det ved å opprette en klasse som heter TicTacToeBoard, som gir metoder som kan kalles for å spille et komplett spill. Deretter blir du bedt om å skrive et program som bruker TicTacToeBoard-klassen for å tillate en menneskelig motstander å spille et spill Tic-Tac-Toe mot datamaskinen.

Fra brukerens perspektiv vil dette programmet fungere identisk med programmet som er opprettet for å løse den enkle Tic-Tac-Toe-spillutfordringen, med en forskjell: For denne versjonen av spillet, gjør programmet en rudimentær innsats mot strategi når man bestemmer datamaskinens bevegelser.Datamaskinen spiller ikke perfekt, så det er fortsatt lett beatable. Men det gjør litt innsats utover bare å spille i det første tomme torget det ser.

Følgende tabell viser metodene som klassen TicTacToeBoard skal implementere. Husk at du må lage to. java-filer for å løse denne utfordringen. Den første, TicTacToeBoard. java, implementerer klassen TicTacToeBoard. Den andre, som bare heter TicTacToe. java, er programmet brukeren vil kjøre for å spille et spill Tic-Tac-Toe mot datamaskinen.

TicTacToeBoard Class
Constructor Beskrivelse
TicTacToeBoard Oppretter en ny TicTacToeBoard med alle torgene tomme.
Metode Beskrivelse
ugyldig nullstilling () Tilbakestiller statusen til hvert felt for å tømme.
int getSquare (String square) Returnerer statusen til torget som er angitt med torget, som må være en av strengene A1, A2, A3, B1, B2, B3, C1, C2 eller C3. Returnerer 0 hvis plassen er tom, 1 hvis den inneholder en X og 2 hvis den inneholder en O. Kaster ulovligArgumentException hvis firkant ikke er en av de tillatte verdiene.
void playAt (String square, int player) Markerer angitt kvadrat (A1, A2, A3, B1, B2, B3, C1, C2 eller C3) for den angitte spilleren (1 for X, 2 for O). Kaster ut IllegalArgumentException hvis firkantet ikke er en av de tillatte verdiene, spilleren er ikke 1 eller 2, eller den angitte firkanten er ikke tom.
int isGameOver () Bestemmer om spillet er over. Returnerer 0 hvis spillet ikke er over, 1 hvis X har vunnet spillet, 2 hvis O har vunnet spillet, og 3 hvis kampen er uavgjort. Spillavslutningsforholdene er som følger:

1: Hvis en rad, kolonne eller diagonal inneholder alle Xs.

2: Hvis en rad, kolonne eller diagonal inneholder alle Os.

3: Hvis det ikke er tomme firkanter og verken X eller O har vunnet.

int getNextMove () Returnerer et heltall som representerer neste trekk for datamaskinens motstander. Denne metoden bør gjøre en rudimentær innsats for å velge et godt trekk, i henhold til følgende strategi:

* Hvis senteret (kvadrat B2) er tomt, spill midtpunktet.

* Hvis senteret ikke er tomt, men noen av de fire hjørnene (firkantene A1, A3, C1 eller C3) er tomme, spiller du en av hjørnene (det spiller ingen rolle hvilken).

* Hvis senteret ikke er tomt og ingen hjørner er tomme, spiller du en av kantene (firkantene A2, B1, B3 eller C2).

String toString () Returnerer en streng som representerer styrets nåværende status. Strengen inneholder nybegynne tegn for å vise radene, samt separatorlinjer på separate konsolllinjer, som i dette eksempelet:

O | | O

- | - | -

| X |

- | - | -

| X |

Hvis du er stumped, kan du finne løsningen på fanen Nedlastinger i Java All-in-One for Dummies, 4. utgave produktside.

Lykke til!

Java Programmeringsutfordring: Legge klasse til det enkle Tic-Tac-Toe-programmet

Redaktørens valg

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Noen ganger trenger du målserier i Excel-oversikten og rapportene dine. I enkelte bedrifter er et mål ikke en verdi - det er en rekke verdier. Det vil si at målet er å holde seg innenfor et definert målområde. Tenk deg at du klarer en liten bedrift som selger esker med kjøtt. En del av jobben din er å ...

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Hvis du skal bruke slicers på en Excel-dashbordet, bør du gjøre litt formatering for å få dine skiver til å passe til temaet og oppsettet på instrumentpanelet. Følgende diskusjon dekker noen formateringsjusteringer du kan gjøre til dine skiver. Størrelse og plassering av skiver En skiver oppfører seg som en standard Excel ...

Enkel statistikk i Excel Data Analyse - dummies

Enkel statistikk i Excel Data Analyse - dummies

Excel gir flere praktiske, brukervennlige verktøy for å analysere informasjon som du lagrer i et bord, inkludert noen raske og skitne statistiske verktøy. Se på følgende enkle bord. En enkel dagligvareliste. Et av de smaleste og raskeste verktøyene som Excel gir, er muligheten til enkelt å beregne summen, gjennomsnittet, antall, minimum og maksimum av ...

Redaktørens valg

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Hvis du klikker Tilpass rapport- QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

QuickBooks kan hjelpe deg skriv en hvit-papir forretningsplan. Folk skriver ofte en forretningsplan for hvitt papir når de vet at de trenger en strategisk plan, men ikke ønsker å ta de harde beslutningene som er nødvendige for en strategisk plan. Personen i denne konfronten skriver en lang hvit-papir forretningsplan for å camouflere den fraværende strategiske planen. ...

Redaktørens valg

Canon 60D elektronisk nivåfunksjon - dummies

Canon 60D elektronisk nivåfunksjon - dummies

Ikke hvert fotografi må være nivå med horisonten. Imidlertid lider mange typer bilder (landskap, bybilder og arkitektonisk fotografi) sterkt når kameraet er vippet. Den gammeldags løsningen for å utjevne kameraet ditt er å bruke et boble- eller åndnivå (funnet i fotobutikker) for å kontrollere kameraets justering med ...

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

På din Canon Rebel T3 eller T3i, kan du se en samling av tilleggsinnstillingsdata via kamerainnstillingsdisplayet. Denne skjermen er bare et informasjonsverktøy, men; Du kan ikke justere noen av de rapporterte innstillingene fra denne skjermen. For å vise skjermbildet Kamerainnstillinger på T3i, vis først innstillingsinnstillingene ...

Canon EOS 70D Kameraoppsett - dummies

Canon EOS 70D Kameraoppsett - dummies

Her er en oversikt over knappene, ringer og andre eksterne kontroller på Canon EOS 70D-kameraet ditt. Objektivet vist i de følgende figurene er Canon EF-S 18-135mm IS (bildestabiliseringsmodell) som selges med kameraet; Andre linser kan variere.