Video: Leap Motion SDK 2024
Misi anda, jika anda memutuskan untuk menerimanya, adalah untuk membuat program Java yang boleh memainkan permainan Tic-Tac-Toe dengan pengguna.
Seperti yang anda ketahui, Tic-Tac-Toe adalah permainan sederhana yang biasanya dimainkan dengan kertas dan pensil. Pertama, anda membuat grid mudah 3 x 3 di atas kertas. Kemudian dua pemain gantian bertukar dengan menandakan Xs dan Os dalam ruang kosong di grid. Pemain pertama yang membuat tiga markahnya dalam baris mendatar, menegak, atau pepenjuru menang. Jika semua ruang dalam grid dipenuhi sebelum mana pemain menandakan tiga berturut-turut, permainan itu adalah seri.
Berikut adalah peraturan dan arahan untuk cabaran ini:
-
Komputer memainkan manusia. Gerakan manusia pertama dan adalah X. Komputer adalah O.
-
Program ini harus bermula dengan memaparkan mesej selamat datang yang pendek, dan kemudian harus meminta pemain untuk langkah pertama. Sebagai contoh:
Selamat datang ke Tic-Tac-Toe. Sila masukkan langkah pertama anda:
-
Untuk menetapkan kotak kuasa grid, gunakan huruf A, B, dan C untuk lajur dan angka 1, 2, dan 3 untuk baris, seperti ini:
A1 B1 C1 A2 B2 C2 A3 B3 C3
Oleh itu, untuk meletakkan X di bahagian atas kiri, pemain manusia akan memasuki teks A1 apabila program itu meminta pemain untuk bergerak.
Selepas manusia memasuki satu langkah, program itu harus memaparkan status semasa papan pada konsol.
-
Gunakan X untuk menandakan drama manusia dan O untuk menandakan permainan komputer. Gunakan aksara bar menegak (terdapat pada papan kekunci dengan watak backslash, tepat di atas kekunci Enter) dan tanda hubung untuk menarik papan dalam grid mudah.
Sebagai contoh, jika pengguna telah memasuki A1 sebagai langkah pertamanya, program itu akan memaparkan berikut:
X | | --- | --- | --- | | --- | --- | --- | |
-
Selepas langkah manusia, program menentukan langkahnya, mengumumkannya kepada pengguna, memaparkan papan yang dikemas kini, dan kemudian meminta langkah pengguna.
Sebagai contoh, anda mungkin melihat ini:
Saya akan memainkan A2: X | O | --- | --- | --- | | --- | --- | --- | | Sila masukkan langkah seterusnya:
-
Main terus sehingga satu pemain telah mencetak tiga berturut-turut atau semua kotak telah diisi tanpa pemenang. Program anda mesti dapat menentukan sama ada pemain telah menjaringkan tiga berturut-turut dan memenangi permainan. (Ini adalah bahagian yang paling sukar dalam cabaran pengaturcaraan ini.)
-
Apabila permainan berakhir, program ini memaparkan mesej yang menunjukkan hasil permainan: "Anda mengalahkan saya! "Jika pemain manusia menang," saya mengalahkan kamu! "Jika pemain komputer menang, atau" Ia seri! "Jika permainan berakhir dalam seri.
-
Pemain manusia dan komputer boleh bermain di dalam kotak yang belum pun diduduki oleh pemain.
-
Program ini berakhir apabila permainan dimenangi sama ada pemain atau permainan adalah seri. Jika anda mahu bermain semula, anda mesti menjalankan program lagi.
Perhatikan bahawa anda bebas untuk menggunakan mana-mana kaedah yang anda ingin tentukan bagaimana komputer harus membuat langkahnya. Saya cadangkan anda mempunyai komputer yang sentiasa bermain di dataran kosong pertama. Ini jelas bukan cara terbaik untuk bermain Tic-Tac-Toe, dan anda tidak akan menghadapi masalah mengalahkan komputer setiap kali anda bermain. Tetapi memilih strategi permainan mudah ini membolehkan anda memberi tumpuan kepada aspek lain dari pengaturcaraan, seperti bagaimana untuk mewakili secara dalaman grid dan bagaimana menentukan bila pemain telah memenangi permainan atau apabila permainan telah berakhir dengan seri.
(Dalam "Cabaran Pemrograman Java: Menambahkan Arrays ke Program Tic-Tac-Toe Mudah" anda diminta membuat strategi yang lebih baik untuk program ini untuk menentukan mainannya.)
Berikut adalah contoh paparan konsol untuk permainan lengkap:
Selamat datang ke Tic-Tac-Toe. Sila masukkan langkah pertama anda: A1 X | | --- | --- | --- | | --- | --- | --- | | Saya akan bermain di A2: X | O | --- | --- | --- | | --- | --- | --- | | Sila masukkan langkah seterusnya anda: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Saya akan bermain di A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Sila masukkan langkah seterusnya anda: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Awak kalahkan saya!
Berikut adalah beberapa petunjuk untuk memulakan anda:
-
Cara terbaik untuk mewakili grid adalah dengan tatasusunan. Buat masa ini, gunakan sembilan pembolehubah, dinamakan A1, A2, A3, B1, B2, B3, C1, C2, dan C3.
-
Jika anda menggunakan jenis int untuk pembolehubah grid, anda boleh menggunakan 1 untuk menunjukkan bahawa sebuah persegi mengandungi X dan 2 untuk menunjukkan bahawa sebuah persegi mengandungi O.
-
Delapan baris yang mungkin boleh menyebabkan kemenangan. Pemain yang menang jika mana-mana kombinasi petak berikut sama ada 1 (untuk X) atau 2 (untuk O):
A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
-
Terdapat dua cara untuk menentukan sama ada permainan itu menarik. Yang pertama adalah untuk memeriksa kesemua sembilan petak: Jika tidak ada petak kosong dan pemain tidak memenangi, permainan adalah seri. Yang kedua adalah mengira bergerak: Jika sembilan langkah telah dibuat dan pemain tidak menang, permainan ini seri.
Anda boleh mencari penyelesaian untuk cabaran pengaturcaraan pada tab Muat Turun dari halaman produk Java All-in-One Untuk Dummies, Edisi ke-4.
Nasib baik!