Rumah Kewangan Peribadi : Menambahkan Kelas ke Program Mudah Tic-Tac-Toe

: Menambahkan Kelas ke Program Mudah Tic-Tac-Toe

Video: The secrets of learning a new language | Lýdia Machová 2025

Video: The secrets of learning a new language | Lýdia Machová 2025
Anonim

Dalam cabaran ini, anda meningkatkan permainan Tic-Tac-Toe anda dengan menambah kelas pengaturcaraan Java, yang membolehkan program itu membuat usaha asas ke arah strategi ketika menentukan komputer bergerak.

Dalam Cabaran Pemrograman Java: Permainan Tic-Tac-Toe Mudah Anda dicabar untuk menulis program untuk memainkan permainan mudah Tic-Tac-Toe. Dalam cabaran ini, anda mengubah suai kod sumber untuk penyelesaian sebelumnya untuk membantu strategi komputer.

Walaupun peraturan permainan adalah sangat mudah, mewujudkan program komputer yang boleh memainkan permainan boleh menjadi rumit. Beberapa butiran yang rumit perlu dimasukkan ke dalam program. Khususnya:

  • Program ini mesti mempunyai cara untuk mewakili status status masing-masing sembilan petak yang membentuk papan Tic-Tac-Toe.

  • Program ini mesti menyediakan cara untuk mendaftarkan pergerakan untuk sama ada pemain, dan mesti memastikan setiap langkah adalah sah (contohnya, pemain tidak dibenarkan bermain dalam persegi yang sudah diduduki oleh X atau O.

  • Program ini mesti dapat menentukan bila mana-mana pemain telah memenangi dengan melihat lapan kombinasi tiga kemungkinan dalam satu baris: Tiga baris, tiga tiang, dan kedua-dua pepenjuru.

  • Program ini juga mesti dapat menentukan kapan permainan adalah seri - iaitu, apabila semua sembilan petak telah dimainkan dan pemain tidak menang.

Pada masa yang sama, program telah menguruskan butiran berinteraksi dengan pengguna dengan meminta pengguna memasuki langkahnya, mengumumkan permainan komputer, memaparkan perwakilan dikemas kini lembaga selepas setiap perlawanan, dan mengisytiharkan pemenang atau mengumumkan cabutan apabila permainan berakhir.

Dalam cabaran ini, anda diminta untuk memisahkan dua elemen program Tic-Tac-Toe ini: bahagian e program yang menguruskan status dan kemajuan permainan dan bahagian program yang mengendalikan interaksi dengan pengguna. Anda akan melakukannya dengan membuat kelas bernama TicTacToeBoard yang menyediakan kaedah yang boleh dipanggil untuk memainkan permainan lengkap. Kemudian, anda diminta menulis program yang menggunakan kelas TicTacToeBoard untuk membolehkan lawan manusia bermain permainan Tic-Tac-Toe terhadap komputer. Dari perspektif pengguna, program ini akan beroperasi secara identik dengan program yang dibuat untuk menyelesaikan cabaran permainan Tic-Tac-Toe yang mudah, dengan satu perbezaan: Untuk versi permainan ini, program ini membuat usaha dasar untuk strategi ketika menentukan bergerak komputer.Komputer tidak berfungsi dengan sempurna, jadi ia masih mudah dikalahkan. Tetapi ia membuat sedikit usaha sekadar bermain di dataran kosong pertama yang dilihatnya.

Jadual berikut menyenaraikan kaedah yang harus dilaksanakan oleh kelas TicTacToeBoard. Ingat, anda perlu membuat dua. fail java untuk menyelesaikan cabaran ini. Yang pertama, TicTacToeBoard. java, melaksanakan kelas TicTacToeBoard. Kedua, dinamakan TicTacToe. java, adalah program yang akan dijalankan pengguna untuk bermain permainan Tic-Tac-Toe terhadap komputer.

Kelas TicTacToeBoard

Pembina
Deskripsi TicTacToeBoard
Mencipta TicTacToeBoard baru dengan semua kotak kosong. Kaedah
Deskripsi void reset ()
Mengeset status setiap persegi ke kosong. int getSquare (Square strings)
Mengembalikan status kuadrat yang ditentukan oleh persegi, yang mesti menjadi salah satu rentetan A1, A2, A3, B1, B2, B3, C1, C2, atau C3. Mengembalikan 0 jika persegi kosong, 1 jika mengandungi X, dan 2 jika ia mengandungi O. Melemparkan IllegalArgumentException jika persegi bukan salah satu daripada nilai yang dibenarkan. 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 akhir permainan adalah seperti berikut: 1: Jika mana-mana baris, lajur, atau pepenjuru mengandungi semua Xs.

2: Jika mana-mana baris, lajur, atau pepenjuru mengandungi semua Os.

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 mengandungi aksara barisan baru untuk memaparkan baris, serta garisan pemisah pada garisan konsol yang berasingan, seperti dalam contoh ini: O | | O

- | - | -

| X |

- | - | -

| X |

Jika anda ditipu, anda boleh mencari penyelesaian pada tab Muat Turun dari halaman produk

Java All-in-One Untuk Dummies, Edisi ke-4. Nasib baik!

: Menambahkan Kelas ke Program Mudah Tic-Tac-Toe

Pilihan Editor

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

Apa yang boleh dilakukan oleh GoPro? Inilah soalan yang lebih relevan: Apa yang anda mahu lakukan? Meminta soalan ini lebih seperti menanyakan diri anda tentang keinginan dan hasrat anda sendiri untuk rakaman video yang unik. Apabila anda menentukan apa yang anda ingin tangkap, semua yang anda perlu lakukan ialah menyambungkan kamera ke gunung yang sesuai ...

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Anda mempunyai refleks kanta tunggal digital yang besar (dSLR ) kamera dan mahu menangkap beberapa gambar indah masa-masa hidup anda. Untuk sepenuhnya menguasai dSLR anda dan membuat gambar yang menarik, anda mesti menceburkan diri ke dunia baru yang berani yang melibatkan membuat keputusan tentang mod penangkapan. Mengetahui panjang fokus apa yang digunakan dalam ...

Pilihan Editor

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Lapisan lapisan di Photoshop CS6 membolehkan anda secara beransur-ansur berus dalam ketelusan dan kelegapan pada asas pixel selektif. Dua alat pelapis lapisan - Alat Gradien dan Brush - lebih kerap digunakan berbanding yang lain: Alat Gradien: Menetapkan alat ini kepada kecerunan linear hitam ke putih atau putih ke ...

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Sumber yang tersedia untuk Adobe Photoshop Creative Suite 6 adalah luas. Kuler adalah komuniti dalam talian yang menyediakan tema warna untuk anda menyemak imbas, memuat turun, membuat, mengedit, dan memuat naik untuk berkongsi dengan orang lain. Gunakan tema ini apabila membuat projek cetak grafik atau laman web. Apa yang anda perlukan ialah sambungan Internet dan Adobe ID. Di sini ...

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Kata kunci adalah label deskriptif yang anda lampirkan ke fail di Bridge. Mereka membantu untuk mengkategorikan imej Photoshop CS6 anda, membolehkan anda lebih cekap dan cepat mencari fail yang anda inginkan. Berikut adalah downside untuk membuat dan menggunakan kata kunci: Untuk membuat kata kunci baru (folder kategori yang mengandungi kata kunci): Klik ikon tanda tambah (+) ...

Pilihan Editor

Dengan Touch dengan Nota Reka bentuk - dummies

Dengan Touch dengan Nota Reka bentuk - dummies

Nota reka bentuk adalah sesuai untuk berkomunikasi dengan pemaju lain yang bekerja pada Laman web, tetapi tidak dalam jarak menjerit. Ciri Dreamweaver ini berfungsi seperti tag komen (kod HTML yang membolehkan anda memasukkan teks dalam halaman yang tidak akan dipaparkan dalam penyemak imbas) tetapi dengan privasi lebih banyak. Ramai pemaju menggunakan ...

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Jangan berfikir bahawa toolbar Dreamweaver CS3 Common Insert biasa dan biasa. Ia hanya dipanggil "umum" kerana ia menawarkan perintah memasukkan yang paling kerap digunakan kerana ia adalah yang paling berguna. Dengan bilah alat yang ditunjukkan di sini, anda boleh memasukkan segala-galanya dari pautan e-mel kepada tarikh kepada mana-mana media yang ingin anda letakkan ...

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Penjajaran imej dan teks bersebelahan mereka di Adobe Suite Creative 5 (Adobe CS5) Dreamweaver adalah mudah, tetapi pilihan yang ada mungkin membuat kelihatan terlalu rumit. Imej dan teks bersebelahan mereka duduk pada garis dasar yang sama sebagai lalai, memaksa teks berjalan dalam satu baris ke kanan imej. Untuk ...