Video: Coding Challenge #124: Flocking Simulation 2024
Dalam tantangan ini, Anda memperbaiki permainan Tic-Tac-Toe Anda dengan menambahkan kelas pemrograman Java, yang memungkinkan program tersebut melakukan upaya yang tidak sempurna menuju strategi saat menentukan komputer. bergerak.
Dalam Tantangan Pemrograman Java: Game Tic-Tac-Toe yang Sederhana Anda ditantang untuk menulis sebuah program untuk memainkan permainan sederhana Tic-Tac-Toe. Dalam tantangan ini, Anda memodifikasi kode sumber untuk solusi Anda sebelumnya untuk membantu pengaturan strategi komputer.
Program harus memiliki cara untuk mewakili secara internal status masing-masing dari sembilan kotak yang membentuk papan Tic-Tac-Toe.-
Program ini harus menyediakan cara untuk mendaftarkan pemindahan pemain, dan harus memastikan bahwa setiap gerakan itu valid (misalnya, pemain tidak diperbolehkan bermain di lapangan yang sudah ditempati oleh X atau O.
-
-
Program ini juga harus dapat menentukan kapan permainan itu imbang - yaitu, ketika semua sembilan kotak telah dimainkan dan tidak ada pemain yang menang.
-
Pada saat bersamaan, program harus mengelola rincian interaksi dengan pengguna dengan meminta pengguna untuk memasukkan langkahnya, mengumumkan permainan komputer, menampilkan perwakilan dewan yang diperbarui setelah setiap permainan, dan mengumumkan pemenang atau mengumumkan hasil imbang saat pertandingan usai..
Tabel berikut mencantumkan metode yang harus diterapkan oleh kelas TicTacToeBoard. Ingat, Anda perlu membuat dua. file java untuk mengatasi tantangan ini. Yang pertama, TicTacToeBoard. java, menerapkan kelas TicTacToeBoard. Yang kedua, bernama hanya TicTacToe. java, adalah program yang akan dijalankan pengguna untuk bermain game Tic-Tac-Toe melawan komputer.
Kelas TicTacToeBoard
Konstruktor
TicTacToeBoard | Membuat TicTacToeBoard baru dengan semua kotak kosong. |
---|---|
Metode | Deskripsi |
void reset () | Menyetel ulang status setiap kotak menjadi kosong. |
int getSquare (String square) | Mengembalikan status kuadrat yang ditentukan oleh kuadrat, yang harus merupakan salah satu senar A1, A2, A3, B1, B2, B3, C1, C2, atau C3. Mengembalikan 0 jika kotak kosong, 1 jika berisi X, dan 2 jika berisi O. Throws IllegalArgumentException jika kotak bukan merupakan salah satu nilai yang diijinkan. Menandai kotak yang ditentukan (A1, A2, A3, B1, B2, B3, C1, C2, atau C3) untuk pemain yang ditentukan (1 untuk X, 2 untuk HAI). Melempar IllegalArgumentException jika kotak bukan salah satu nilai yang diijinkan, pemain tidak 1 atau 2, atau kotak yang ditentukan tidak kosong. |
int isGameOver () | Menentukan apakah permainan telah selesai. Mengembalikan 0 jika permainan belum berakhir, 1 jika X telah memenangkan pertandingan, 2 jika O telah memenangkan pertandingan, dan 3 jika permainan itu imbang. Kondisi akhir permainan adalah sebagai berikut: |
1: Jika ada baris, kolom, atau diagonal berisi semua Xs. | 2: Jika ada baris, kolom, atau diagonal berisi semua Os. |
3: Jika tidak ada kotak kosong dan X maupun O tidak pernah menang. | int getNextMove ()
Mengembalikan bilangan bulat yang mewakili langkah selanjutnya untuk lawan komputer. Metode ini harus membuat usaha yang tidak tepat untuk memilih langkah yang baik, sesuai dengan strategi berikut: * Jika pusat (B2 persegi) kosong, mainkan kotak tengah. Jika pusatnya tidak kosong, namun ada empat sudutnya (kotak A1, A3, C1, atau C3) kosong, putar salah satu sudutnya (tidak masalah). |
* Jika bagian tengahnya tidak kosong dan tidak ada sudut yang kosong, putar salah satu ujungnya (kotak A2, B1, B3, atau C2). | String toString ()
Mengembalikan string yang mewakili status papan saat ini. String mencakup karakter baris baru untuk menampilkan baris, serta garis pemisah pada garis konsol terpisah, seperti pada contoh ini: O | | O - | - | - |
| X | | - | - | -
| X | Jika Anda bingung, Anda dapat menemukan solusinya di tab Unduhan halaman produk Java All-in-One For Dummies, 4th Edition. semoga berhasil! |