Hem Personliga finanser Java Programmeringsutmaning: Lägga till en GUI till programmet Tic-Tac-Toe

Java Programmeringsutmaning: Lägga till en GUI till programmet Tic-Tac-Toe

Video: Java Tutorial for Beginners [2019] 2024

Video: Java Tutorial for Beginners [2019] 2024
Anonim

I Java Programming Challenge: En enkel Tic-Tac-Toe-spel du utmanades att skriva ett konsolbaserat program som spelar det enkla spelet Tic-Tac-Toe. Java-programutmaningen här är att använda Swing för att lägga till ett grafiskt användargränssnitt (GUI) till programmet. GUI: n ska likna den som visas här.

användargränssnittet för ett Tic-Tac-Toe-program.

Spelet är enkelt. Den mänskliga spelaren spelar först genom att klicka på någon av rutorna. Kvadraten klickas av människa visar en stor X. Efter de mänskliga spelen bestämmer programmet om människa har vunnit eller tvingat en rita. Om så är fallet visas ett meddelande, styrelsen återställs och ett nytt spel börjar. Om inte, väljer datorn ett drag och markerar dess fyrkant med en stor O.

Programmet bestämmer då om datorn har vunnit spelet. Om så är fallet visar programmet ett meddelande, återställer styrelsen och startar ett nytt spel. Om inte spelar den mänskliga spelaren igen. Detta fortsätter tills en spelare vinner eller alla rutorna fylls.

Ditt program ska använda samma TicTacToeBoard-klass som du skapar för Java Programming Challenge: Lägga till klass i det enkla Tic-Tac-Toe-programmet. Med andra ord måste det genomföra exakt samma metoder. För din bekvämlighet upprepas dessa metoder i följande tabell.

TicTacToeBoard Class
Constructor Beskrivning
TicTacToeBoard Skapar en ny TicTacToeBoard med alla rutor tomma.
Metod Beskrivning
void reset () Återställer statusen för varje kvadrat för att tömma.
void playAt (String Square, Int Player) Markerar den angivna kvadraten (A1, A2, A3, B1, B2, B3, C1, C2 eller C3) för den angivna spelaren (1 för X, 2 för O). Kastar IllegalArgumentException om kvadrat inte är ett av de tillåtna värdena, spelaren är inte 1 eller 2, eller den angivna rutan är inte tom.
int isGameOver () Bestämmer om spelet är över. Returnerar 0 om spelet inte är över, 1 om X har vunnit spelet, 2 om O har vunnit spelet och 3 om spelet är oavgjort. Spelets slutförhållanden är följande:

1: Om någon rad, kolumn eller diagonal innehåller alla X: er.

2: Om någon rad, kolumn eller diagonal innehåller alla O: er.

3: Om det inte finns några tomma rutor och varken X eller O har vunnit.

int getNextMove () Returnerar ett heltal som representerar nästa steg för datorns motståndare. Denna metod bör göra en rudimentär ansträngning för att välja ett bra drag, enligt följande strategi:

* Om mitten (kvadrat B2) är tom spelar du mittpunkten.

* Om mitten inte är tomt men någon av de fyra hörnen (rutorna A1, A3, C1 eller C3) är tom, spelar du en av hörnen (det spelar ingen roll vilken).

* Om centret inte är tomt och inga hörn är tomma, spela en av kanterna (rutorna A2, B1, B3 eller C2).

String toString () Returnerar en sträng som representerar styrelsens nuvarande status. Strängen innehåller nya tecken för att visa raderna samt separatorlinjer på separata konsollinjer, som i det här exemplet:

O | | O

- | - | -

| X |

- | - | -

| X |

Du hittar lösningen på den här utmaningen på fliken Hämtningar i Java All-in-One for Dummies, 4: e utgåva produktsida.

Lycka till!

Java Programmeringsutmaning: Lägga till en GUI till programmet Tic-Tac-Toe

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: