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á 2024

Video: The secrets of learning a new language | Lýdia Machová 2024
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

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Jika anda mahu menggunakan MapController untuk apl iOS anda, anda memerlukan sebuah saluran keluar. Dengan Pemilih peta anda dijaga, tiba waktunya untuk mencipta saluran supaya MapController mempunyai akses ke paparan Peta untuk memusatkan peta dan mempunyai paparan anotasi. Ikuti langkah berikut:

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Senibina aplikasi adalah di mana anda akan bermula dengan pembangunan aplikasi iOS anda. Pada tahap asas, kebanyakan apl terdiri daripada komponen asas yang sama. Kebanyakan aplikasi terdiri daripada yang berikut: Model: Objek model merangkumi logik dan kandungan (data) aplikasi. Views: Kandungan data tidak berguna jika pengguna anda ...

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Manusia, manusia gua dan manusia moden, adalah omnivora . Gaya hidup Paleo membina warisan makan daging. Ahli antropologi bersetuju bahawa nenek moyang kita yang terdahulu adalah pemakan daging, dan saintis menganggarkan bahawa gen kita adalah 99. 9 peratus sama dengan mereka pada masa itu. Daging menyediakan kita dengan protein, asid lemak penting, dan vitamin - sama seperti ...

Pilihan Editor

Bersukacita dengan Perspektif Hak - monyet

Bersukacita dengan Perspektif Hak - monyet

Tidak seperti binatang lain, mengenai pilihan! Anda boleh memilih untuk berbahagia. Anda boleh memilih untuk melihat kehidupan sebagai kaca separuh penuh (optimistik) atau kaca setengah kosong (pesimis). Semuanya datang kepada sama ada anda menentukan masalah sebagai cabaran atau krisis. Mempunyai perspektif yang betul adalah ...

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Akhir-akhir ini, manusia memerlukan rancangan untuk semuanya. Adakah rancangan ini menjadikan anda lebih bahagia? Lebih kurang dan lebih sedikit orang boleh melalui hari tanpa BlackBerry. Ibu bapa merancang untuk pendidikan kolej anak-anak mereka apabila anak-anak berada di tadika. Ada perancang persaraan, perancang perjalanan, perancang perkahwinan, dan bahkan ...

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Bagaimana membesarkan anak-anak anda tidak hanya menjejaskan betapa gembiranya mereka; ia memberi kesan kepada bagaimana mereka melakukan persembahan di sekolah, sama ada mereka mengambil merokok, bagaimana mungkin mereka akan mengalami kemurungan, dan sama ada mereka terlibat dalam tingkah laku seksual yang berisiko. Menurut ahli psikologi yang mengkaji hal semacam ini, terdapat empat gaya utama ...

Pilihan Editor

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Mod rakaman lalai excel adalah rujukan mutlak. Apabila rujukan sel dalam formula adalah rujukan mutlak, ia tidak menyesuaikan secara automatik apabila formula disisipkan ke lokasi baru. Cara terbaik untuk memahami bagaimana konsep ini digunakan untuk makro adalah mencuba. Catat makro yang mengira baris ...

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Menghubungkan formula adalah formula dalam Excel 2007 yang merujuk lokasi dalam lembaran kerja yang sama, buku kerja sama, atau bahkan buku kerja yang berbeza. Apabila anda mencipta formula pautan, ia membawa formula rumit atau asal ke lokasi baru supaya hasil dalam formula pengaudan tetap terikat secara dinamik kepada asal. Jika ...

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rujukan relatif dalam makro Excel bermakna relatif kepada sel yang sedang aktif . Oleh itu, berhati-hati dengan pilihan sel aktif anda - kedua-duanya apabila anda merakam rujukan makro relatif dan apabila anda menjalankannya. Pertama, buka Sample File. xlsx boleh didapati dalam talian. Kemudian, gunakan langkah-langkah berikut untuk merakam makro rujukan relatif: Pada ...