>> ZAMYLA CHAN: Mari kita menyeronokkan dengan Lima belas.
Lima belas adalah permainan pertama yang anda dapat untuk melaksanakan dan ia interaktif.
Sekarang, tidak perlu bimbang.
Anda tidak perlu menulis Semua perkara sendiri.
Lihatlah kod pengedaran kerana banyak struktur permainan sudah
ditubuhkan untuk anda.
Ia menerima dan mem-parsing baris arahan hujah dari pengguna dan mewujudkan
lembaga berdasarkan input itu.
Ia memeriksa jika permainan itu dimenangi dan keluar sebaik sahaja pengguna memenangi permainan.
Dan untuk memenangi permainan, ia mendapat input daripada pengguna dan
panggilan fungsi Gerakkan.
>> Jadi, kita akan perlu melaksanakan empat fungsi untuk permainan Lima belas,
INIT, menarik, bergerak, dan menang.
Pertama, mari kita menangani init.
Dalam INIT, untuk Memula, kami mewakili lembaga dalam pelbagai integer 2D.
Dan ini adalah berubah-ubah global dipanggil papan dengan dimensi MAX, dan MAX,
dimensi maksimum lembaga.
Sekarang, dimensi sebenar lembaga diberikan oleh pengguna, yang diwakili dalam
d integer, yang boleh kurang daripada MAX.
Tetapi, dalam C, anda tidak boleh mengubah saiz tatasusunan, jadi anda terjebak dengan
dimensi maksimum.
>> Tugas anda dalam init adalah untuk mengisi nilai-nilai lembaga
dengan nilai yang betul.
Sekarang, kita telah melihat array 1D, tetapi bagaimana tatasusunan 2D berfungsi?
Ada satu indeks baris, sifar diindeks seperti biasa, dan kemudian juga daripada
lajur.
Dan anda akan mengisi grid anda di dalam menurun nilai-nilai, seperti ini.
Grid, 0, 0, 0 baris, kolum 0, ialah 8, grid 0, 1 ialah 7.
Ini adalah sebagai contoh di mana d, sedikit d, ialah 3.
>> Sekarang, lembaga di Lima belas juga mesti mengandungi jubin kosong, jika anda pernah
bermain dengan permainan fizikal.
Tetapi, lembaga adalah pelbagai integer, jadi semua nilai perlu menjadi integer.
Supaya ia terpulang kepada anda untuk memutuskan integer Nilai untuk mewakili jubin kosong.
Untuk memulakan papan anda, anda boleh menggunakan struktur gelung untuk membendung
negeri bermula lembaga, di mana papan i j mewakili elemen di
baris i dan lajur j.
Mereka mula sama ada turun dan, ingat, bahawa jika bilangan jubin
ganjil, maka anda akan perlu untuk swap lokasi 2 dan 1.
Jadi di sana, kami mempunyai kita lembaga dimulakan.
>> Sekarang, yang kami telah dimulakan kami lembaga, ia adalah masa untuk menarik ia.
Cabutan akan mencetak keadaan semasa yang lembaga, tetapi anda perlu memastikan
untuk mencetak jubin dalam urutan yang sama bahawa anda telah dimulakan mereka.
Dan anda juga perlu memformat nombor anda dengan betul.
Kerana kita mungkin mempunyai digit tunggal dan dua angka, maka anda mahu
mencetak ruang kosong sebelum mana-mana nombor satu angka.
Anda menggunakan bahawa dengan menggunakan ruang letak -.
>> Tetapi ingat ruang kosong kami.
Kita tidak mahu untuk mencetak jumlah sebenar bahawa kami telah dipilih untuk mewakili
bahawa ruang kosong dalam lembaga, tetapi kita juga tidak mahu untuk mencetak apa-apa.
Jadi apa yang anda boleh lakukan ialah untuk menentukan simbol atau watak untuk mewakili
jubin kosong.
Dalam contoh yang lepas saya telah memilih satu menekankan, dan kemudian anda hanya mencetak
bahawa setiap kali anda mencapai kosong ruang dalam fungsi seri anda.
>> Jadi menarik akan bersarang untuk gelung.
Sesuatu seperti ini.
Bagi setiap baris, dan kemudian untuk setiap nilai dalam berturut-turut, anda akan mencetak
nilai dalam ruang ini.
Setelah anda dicetak semua nilai-nilai berturut-turut, maka anda
boleh mencetak baris baru.
Ingat bahawa perintah seri anda fungsi mesti echo atau mencerminkan perintah itu
dalam fungsi dimulakan anda.
>> Sekarang anda dimulakan lembaga dan bahawa anda telah disediakan, ia adalah masa untuk membiarkan
pengguna mengedit dan membuat bergerak mereka.
Jadi dalam fungsi Fifteen.c itu, program mengambil input daripada pengguna dan
maka panggilan fungsi bergerak, lulus dalam bilangan jubin bahawa
pengguna mahu bergerak.
Sekarang, berhati-hati.
Ini adalah jumlah sebenar jubin dan tidak kedudukan sebenar.
Jadi, anda akan perlu untuk mencari jubin ini kedudukan untuk tahu di mana ia.
>> Sekarang, anda hanya perlu membenarkan pengguna untuk bergerak jika ia adalah undang-undang.
Satu langkah undang-undang adalah jubin yang bersebelahan dengan jubin yang kosong.
Ini bermakna, di atas dan di bawah, untuk kiri dan ke kanan.
Jadi, anda perlu tahu di mana jubin kosong adalah juga.
Sekarang, untuk setiap langkah yang anda sedang mencari jubin pengguna, tetapi ia mungkin
tidak terbaik untuk mencari jubin kosong setiap kali kerana anda melakukannya
setiap kali tunggal yang pengguna mahu bergerak.
Jadi, sebaliknya, ia adalah yang terbaik untuk ingat di mana jubin tampang menggunakan beberapa
juga dinamakan pembolehubah.
Jadi apabila anda membenarkan pengguna untuk membuat mereka bergerak, mereka juga pada mereka
cara untuk memenangi permainan Lima belas.
>> Untuk memenangi permainan Lima belas, jubin perlu berada dalam susunan yang tertentu, dan
fungsi memenangi memeriksa sama ada permainan dimenangi.
Ia mengembalikan Benar jika permainan ini menang dan jubin berada dalam susunan yang betul,
dan palsu sebaliknya.
Jadi untuk memenangi permainan Lima belas, jubin perlu meningkatkan usaha, dengan
jubin kosong di sudut bawah kanan.
Jadi bagaimana anda menyemak sama ada pengguna telah berpindah ke dalam lembaga hak
orientasi?
>> Nah, anda akan melelar atas papan dan memeriksa nilai-nilai memastikan bahawa
mereka berada di tempat yang betul.
Untuk melakukan ini, anda boleh menggunakan bersarang untuk gelung seperti yang anda lakukan
seri dan dalam init.
Terdapat beberapa cara untuk memeriksa dan mengesahkan sama ada lembaga adalah
betul dan memenangi satu pembentukan, walaupun.
Jika anda pergi dari kiri ke kanan, bermula dari baris atas ke bawah, maka setiap
bilangan mesti lebih besar daripada yang sebelumnya.
Berhati-hati apa yang anda telah menghargai dipilih untuk jubin kosong anda sekalipun.
>> Atau anda boleh menggunakan pembolehubah kaunter untuk memastikan bahawa setiap nilai di tempat, jika
anda datang dengan beberapa jenis formula untuk mewakili ini.
Jadi berseronok mencuba dengan matematik.
Sebaik sahaja anda telah datang dengan satu cara, pulangan Benar sekali pengguna telah memenangi permainan.
Tetapi jika apa-apa nilai tidak betul, pulangan Palsu, pengguna mempunyai untuk terus bergerak
kerana mereka tidak memenangi permainan.
Apabila anda melaksanakan semak ini dan, bersama-sama dengan Memula, menarik, dan bergerak,
anda selesai permainan Lima belas.
Tahniah dan mempunyai bermain menyeronokkan.
Nama saya Zamyla dan ini adalah CS50.