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