Video: Java Tutorial | GUI | Getting elements on JComboBox to be viewable via ItemListener 2024
Dalam Cabaran Pemrograman Java: Permainan Mudah Tic-Tac-Toe anda dicabar untuk menulis program berasaskan konsol yang memainkan permainan mudah Tic-Tac-Toe. Cabaran pengaturcaraan Java di sini adalah menggunakan Swing untuk menambah Antara Muka Pengguna Grafis (GUI) ke program ini. GUI sepadan dengan yang ditunjukkan di sini.
Permainan bermain adalah mudah. Pemain manusia memainkan dahulu dengan mengklik mana-mana kotak itu. Alun-alun yang diklik oleh manusia memaparkan X besar. Selepas bermain manusia, program menentukan jika manusia telah memenangi atau memaksa cabutan. Jika ya, mesej dipaparkan, papan ditetapkan semula, dan permainan baru bermula. Jika tidak, komputer memilih langkah dan tandakan segiempatnya dengan O.
Program kemudian menentukan jika komputer telah memenangi permainan. Jika ya, program itu memaparkan mesej, menetapkan semula papan, dan memulakan permainan baru. Jika tidak, pemain manusia bermain semula. Ini berterusan sehingga satu pemain menang atau semua petak dipenuhi.
Program anda harus menggunakan kelas TicTacToeToBoard yang sama yang anda buat untuk Cabaran Pemrograman Java: Menambahkan Kelas ke Program Tic-Tac-Toe Mudah. Dalam erti kata lain, ia mesti melaksanakan kaedah yang sama. Untuk kemudahan anda, kaedah ini diulang dalam jadual berikut.
Pembina | Deskripsi |
---|---|
TicTacToeBoard | Mencipta TicTacToeBoard baru dengan semua kotak kosong. |
Kaedah | Deskripsi |
void reset () | Mengeset status setiap persegi ke kosong. |
void playAt (String square, int player) | Tandakan kotak yang ditentukan (A1, A2, A3, B1, B2, B3, C1, C2, atau C3) untuk pemain yang ditentukan (1 untuk X, 2 untuk O). Melemparkan IllegalArgumentException jika persegi bukan salah satu daripada nilai yang dibenarkan, pemain tidak 1 atau 2, atau persegi tertentu tidak kosong. |
int isGameOver () | Menentukan sama ada permainan berakhir. Mengembalikan 0 jika permainan tidak berakhir, 1 jika X telah memenangi permainan, 2 jika O telah memenangi permainan, dan 3 jika permainan itu menarik. Syarat permainan yang berakhir adalah seperti berikut:
1: Jika mana-mana baris, lajur, atau pepenjuru mengandungi semua X. 2: Jika mana-mana baris, lajur, atau pepenjuru mengandungi semua O. 3: Jika tiada kotak kosong dan X atau O tidak menang. |
int getNextMove () | Mengembalikan integer yang mewakili langkah seterusnya untuk lawan komputer. Kaedah ini harus membuat usaha utama untuk memilih langkah yang baik, mengikut strategi berikut:
* Jika pusat (persegi B2) kosong, mainkan pusat tengah. * Jika pusat itu tidak kosong tetapi mana-mana empat sudut (dataran A1, A3, C1, atau C3) kosong, bermain salah satu sudut (tidak kira perkara itu). * Jika pusat itu tidak kosong dan tiada sudut kosong, mainkan salah satu tepi (dataran A2, B1, B3, atau C2). |
String toString () | Mengembalikan rentetan yang mewakili status semasa papan. Rentetan itu merangkumi aksara barisan baru untuk memaparkan baris serta garisan pemisah pada garisan konsol berasingan, seperti dalam contoh ini:
O | | O - | - | - | X | - | - | - | X | |
Anda akan mencari penyelesaian untuk cabaran ini pada tab Muat Turun dari halaman produk Java All-in-One Untuk Dummies, Edisi ke-4.
Nasib baik!