Halo, dan selamat datang kembali.
Dalam kuliah ini, saya ingin memberi Anda tantangan lain.
Ini terkait dengan fungsi, tapi tantangan ini akan lebih
tentang membagi dan menaklukkan. Ini akan terjadi untuk lebih tentang mengatur
program Anda di sekitar modul, itu akan menjadi lebih tentang pemecahan masalah.
Apa yang saya ingin Anda lakukan adalah saya ingin Anda untuk menulis permainan tic-tac-toe.
Ini akan membantu Anda hanya menjadi pemecah masalah yang lebih
baik, dan itu akan membantu Anda mengatur program Anda di sekitar fungsi.
Anda juga akan menggunakan
array, Anda harus mencari bagaimana memformat data tertentu,
tetapi itu akan menjadi simulasi permainan tic-tac-toe.
Kami tidak akan menulis komputer.
Ini akan menjadi pemain 1 lawan pemain 2.
Jadi saya ingin Anda menulis program yang memainkan tic-tac-toe.
Semoga, semua orang akrab dengan program ini atau game
ini, saya harus mengatakan.
Ini hanya permainan yang dimainkan pada kotak 3 x 3 dengan dua pemain.
Anda bergiliran.
X adalah hidung.
Mudah-mudahan, itu membunyikan bel.
Saya tidak ingin harus pergi dan jelaskan game ini, tapi semoga
Anda terbiasa dengan tic-tac-toe.
Saya akan memberikan sedikit demonstrasi cara kerjanya dan
bagaimana saya mengharapkan output untuk dimainkan.
Tapi ini adalah permainan dasar tic tac toe.
Yang ingin aku lakukan adalah kamu
mungkin perlu membuat array untuk mewakili papan sebenarnya, kotak 3 x 3.
Saya pikir Anda bisa lolos hanya dengan membuat array dimensi tunggal.
Anda benar-benar dapat membuat Array 2D juga untuk mewakili baris
dan kolom.
2D mungkin akan lebih intuitif, tetapi mungkin
sedikit lebih sulit untuk divisualisasikan dalam kode Anda.
Tapi kedua cara itu berhasil.
Hal yang baik tentang pemrograman adalah ada banyak solusi untuk suatu masalah.
Saya akan memberi tahu Anda salah satu dari saya solusi dan pendekatan desain saya,
tetapi jangan ragu untuk mengubah desain.
Selama Anda menggunakan c membangun dengan benar, hanya itu
yang saya pedulikan.
Saya ingin Anda belajar bagaimana menggunakan c.
Selama program Anda dimodulasi dan itu terorganisir dan
mudah dirawat, dan ini adalah kode kualitas, itu yang saya khawatirkan.
Jadi satu cara untuk menerapkan hanya satu cara mewakili papan sebagai array
dimensi tunggal dengan sepuluh elemen.
Alasan saya memiliki sepuluh elemen di sini adalah saya tidak ingin Anda menggunakan nol.
Sepuluh elemen ini pergi untuk mewakili
dewan, tetapi mereka juga akan mewakili koordinat di papan tulis.
Jadi saya akan mendemonstrasikan ini dan menunjukkan Anda bagaimana saya berpikir untuk bekerja.
Tapi caramu pergi untuk benar-benar
memilih kotak yang ingin Anda gambar didasarkan pada nomor elemen.
Selain membuat array untuk papan, Anda harus mencoba memikirkan bagaimana Anda
akan memecahkan masalah ini turun, bagaimana Anda akan mengaturnya.
Saya berpikir minimal bahwa Anda akan membutuhkan
setidaknya tiga fungsi, mungkin lebih.
Tetapi Anda perlu setidaknya memiliki satu fungsi yang memeriksa pemenang.
Ini pada dasarnya hanya akan melihat jika seseorang telah memenangkan permainan atau
mereka bahkan mungkin memeriksa hasil imbang.
Anda harus memiliki fungsi yang menarik papan.
Karena kamu akan menggambar papan setelah giliran setiap pemain.
Dan Anda akan -- jadi Anda akan menggunakan kembali ini.
Fungsi lain untuk menandai papan, ini
terjadi ketika pengguna benar-benar ingin menempatkan x atau o dalam kotak tertentu.
Anda memerlukan fungsi untuk mengatur kotak itu sebagai x atau o.
Apa yang akan terjadi adalah Anda mungkin akan menjadi mengisi array dengan x atau o itu.
Dan dengan cara itu Anda dapat melihat array untuk melihat apakah Anda menang atau kalah.
Dan di papan tanda, itu juga akan memungkinkan Anda untuk memeriksa
pilihan yang tidak valid.
Jadi jika pilihan yang valid adalah satu sampai sembilan dan pengguna
memasukkan sepuluh, Anda akan berkata, hei, Anda tidak bisa melakukannya, coba lagi.
Game harus ramah pengguna, harus intuitif untuk digunakan sejauh
perspektif pengguna dan itu harus diatur sejauh
perspektif pemrograman.
Benar-benar berpikir tentang yang satu ini.
Dapatkan beberapa perencanaan, lakukan beberapa perencanaan, keluarkan beberapa kertas, mulai menulis beberapa desain tentang bagaimana Anda akan menyerang masalah
ini dan apa fungsi yang perlu Anda gunakan.
Cara saya berpikir ini akan berjalan, izinkan
saya menunjukkan sedikit demo.
Saya tidak akan menunjukkan sumber apa pun kepada Anda kode, tapi ini adalah apa yang saya
bayangkan permainan akan terlihat seperti ketika kita menjalankannya.
Mungkin sedikit judul yang mengatakan, hei, permainan.
Dan kemudian juga sedikit informasi tentang pemain.
Pemain 1 akan menjadi x, pemain 2 akan menjadi o.
Ingat, ini tidak memiliki untuk bermain komputer.
Anda hanya dapat menempatkan di setiap belokan.
Jadi Anda harus memainkan game ini dengan seorang teman yang duduk di sebelah Anda, dan
mereka harus memberitahu Anda di mana untuk menempatkan nomor.
Jika Anda benar-benar ambisius, Anda
dapat menulis game untuk dimainkan melawan komputer.
Tetapi Anda akan melihat bahwa 3 x 3 grid memiliki nomor di dalamnya awalnya.
Anda dapat menggunakan nomor ini untuk masuk.
Jadi jika Anda pemain yang menginginkan untuk mengambil giliran mereka dan mereka
mewakili x, tergantung pada apa nomor yang mereka masukkan, di
situlah x akan ditempatkan.
Jadi kami mencetak grid, kami menampilkan papan dan kemudian kami juga memberi
tahu pengguna giliran siapa dan kami memberitahu mereka untuk memasukkan nomor.
Jadi dalam hal ini, saya akan melanjutkan dan masukkan nomor dua dan tekan kembali.
Dan apa yang akan terjadi setelah aku memukul dua dan
kembali, itu akan benar-benar melihat apakah seseorang menang, itu akan menghapus layar dan itu
akan menggambar ulang papan.
Jadi setelah saya menekan 2 dan masuk, Anda akan perhatikan bahwa saya masih memiliki judul, saya
masih memiliki pemain 1 dan pemain 2.
Tapi sekarang di kotak 2, saya punya x.
Jadi apa lagi yang harus saya lakukan ada yang harus
saya periksa sebelum saya menampilkan papan apakah atau tidak kami memiliki pemenang atau seri.
Dan jelas itu yang pertama masuk jadi kami tidak memiliki keduanya.
Karena kita tidak memiliki pemenang atau seri, saya sekarang
akan meminta pemain untuk memasukkan nomor dan kemudian mereka dapat memilih nomor apa saja di sini.
Sekarang jika saya memasukkan yang tidak valid nomor seperti 10, itu harus memberitahu saya
itu tidak valid.
Dan itu seharusnya memungkinkan saya untuk mungkin melakukan gerakan lain.
Jika saya akan memasukkan 2, 2 juga harus tidak valid.
Jadi jika saya memasukkan 2, itu juga mengatakan tidak valid karena 2 sudah diambil oleh x.
Jadi jika program mengizinkan saya untuk coba lagi, Anda bisa saja menyingkirkan giliran mereka
tetapi itu tidak terlalu adil.
Jadi sekarang saya hanya akan mengatakan di mana saya ingin menempatkan o? Saya akan mengatakan
5, saya akan menempatkan langkah tidak valid, itu akan menggambar ulang
papan dan ada o dan 5.
Dan sekarang dikatakan pemain 1.
Dan kamu terus melakukan ini sampai Anda memiliki pemenang atau seri.
Saya hanya akan mengatakan 9.
Sekarang saya punya x di sana, valid entri adalah 1 3 4 6 7 dan 8.
Saya akan mengatakan 3.
Dan mari kita benar-benar mencoba untuk mendapatkan x ke menang jadi sekarang x akan masuk ke
delapan dan saya akan menempatkan o dan 6 hanya untuk menunjukkan kepada Anda bahwa permainan bekerja dengan pemenang.
Dan kemudian saya menempatkan 7 untuk x, permainan sekarang harus berakhir. Saya menekan kembali.
Dikatakan pemain satu menang, dan itu bahkan memainkan sedikit suara untuk saya, saya
melakukan hal-hal kecil di sana.
Jadi permainan selesai, pemain satu menang.
Dan itu juga harus terjadi jika pemain 2 menang atau jika ada seri.
Jadi pikirkan bagaimana Anda mau untuk menyerang masalah ini.
Program kecil yang bagus.
Saya akan memberikan solusi dan memberikan kode sumber di kuliah berikutnya. Terima kasih.