>> ZAMYLA CHAN: Mari kita bersenang-senang dengan Lima belas.
Lima belas adalah game pertama yang Anda dapatkan untuk menerapkan dan itu interaktif.
Sekarang, tidak perlu khawatir.
Anda tidak perlu menulis semuanya sendiri.
Lihatlah kode distribusi karena banyak struktur permainan sudah
diatur untuk Anda.
Ia menerima dan mem-parsing baris perintah Argumen dari pengguna dan menciptakan
papan berdasarkan masukan itu.
Ia memeriksa apakah game tersebut telah menang dan keluar sekali pengguna memenangkan pertandingan.
Dan untuk memenangkan pertandingan, itu akan input dari user dan
memanggil fungsi Move.
>> Jadi kita akan menerapkan empat fungsi untuk permainan Fifteen,
init, menggambar, memindahkan, dan menang.
Pertama, mari kita menangani init.
Dalam init, untuk initialize, kami mewakili dewan dalam integer array 2D.
Dan ini adalah variabel global yang disebut papan dengan dimensi MAX, dan MAX,
dimensi maksimum papan.
Sekarang, dimensi sebenarnya dari papan diberikan oleh pengguna, diwakili dalam
integer d, yang bisa kurang dari MAX.
Tapi, di C, Anda dapat mengubah ukuran array tidak, sehingga Anda terjebak dengan
bahwa dimensi maksimum.
>> Tugas Anda di init adalah untuk mengisi nilai-nilai papan
dengan nilai yang benar.
Sekarang, kami telah melihat array 1D, namun bagaimana array 2D bekerja?
Ada indeks baris, nol diindeks seperti biasa, dan kemudian juga dari
kolom.
Dan Anda akan mengisi grid Anda di dalam turun nilai, seperti ini.
Grid, 0, 0, baris 0, kolom 0, adalah 8, jaringan 0, 1 adalah 7.
Hal ini untuk contoh di mana d, d kecil, adalah 3.
>> Sekarang, dewan di Fifteen juga harus berisi ubin kosong, jika Anda sudah pernah
bermain dengan permainan fisik.
Tapi, papan adalah array integer, sehingga semua nilai harus bilangan bulat.
Jadi terserah Anda untuk memutuskan integer Nilai untuk mewakili ubin kosong.
Untuk menginisialisasi forum Anda, Anda dapat menggunakan lingkaran struktur mengandung
mulai keadaan papan, di mana papan i j merupakan elemen pada
baris i dan kolom j.
Mereka mulai di Urutan menurun dan, ingat, bahwa jika jumlah ubin
aneh, maka Anda akan harus menukar lokasi 2 dan 1.
Jadi ada, kami telah kami diinisialisasi papan.
>> Sekarang, bahwa kita telah diinisialisasi kami papan, saatnya untuk menarik itu.
Hasil imbang akan mencetak keadaan saat ini papan, tetapi Anda perlu memastikan
untuk mencetak ubin dalam urutan yang sama bahwa Anda telah diinisialisasi mereka.
Dan Anda juga perlu memformat nomor Anda dengan benar.
Karena kita mungkin memiliki satu digit dan dua digit, maka Anda ingin
mencetak ruang kosong sebelum setiap angka satu digit.
Anda menggunakannya dengan menggunakan placeholder -.
>> Tapi ingat ruang kosong kami.
Kami tidak ingin mencetak jumlah aktual bahwa kita telah dipilih untuk mewakili
bahwa ruang kosong di papan, tapi kami juga tidak ingin mencetak apa-apa.
Jadi apa yang dapat Anda lakukan adalah untuk mendefinisikan simbol atau karakter untuk mewakili
ubin kosong.
Dalam contoh sebelumnya saya telah memilih sebuah menggarisbawahi, dan kemudian Anda hanya mencetak
bahwa setiap kali Anda mencapai kosong ruang dalam fungsi menarik Anda.
>> Jadi menarik akan bersarang untuk loop.
Sesuatu seperti ini.
Untuk setiap baris, dan kemudian untuk setiap nilai dalam baris, Anda akan mencetak
nilai dalam ruang ini.
Setelah Anda dicetak semua nilai berturut-turut, maka Anda
dapat mencetak baris baru.
Ingat bahwa perintah untuk menarik Anda fungsi harus gema atau cermin order
dalam fungsi Anda diinisialisasi.
>> Sekarang bahwa Anda diinisialisasi papan dan bahwa Anda telah ditarik itu, saatnya untuk membiarkan
pengguna mengedit dan membuat gerakan mereka.
Jadi dalam fungsi Fifteen.c, yang Program mengambil input dari user dan
kemudian memanggil fungsi bergerak, melewati dalam jumlah ubin yang
pengguna ingin pindah.
Sekarang, berhati-hatilah.
Ini adalah jumlah aktual ubin dan bukan posisi yang sebenarnya.
Jadi, Anda harus mencari genteng yang posisi untuk tahu di mana itu.
>> Sekarang, Anda hanya harus memungkinkan pengguna untuk bergerak jika itu legal.
Sebuah langkah hukum adalah setiap genteng yang berdekatan dengan ubin kosong.
Itu berarti, di atas dan di bawah, untuk kiri dan ke kanan.
Jadi, Anda harus tahu di mana ubin kosong juga.
Sekarang, untuk setiap gerakan yang Anda cari pengguna genteng, tapi mungkin
tidak terbaik untuk mencari ubin kosong setiap waktu karena Anda melakukannya
setiap kali itu pengguna ingin pindah.
Jadi, sebagai gantinya, yang terbaik untuk mengingat di mana ubin kosong menggunakan beberapa
baik bernama variabel.
Jadi, sekali Anda memungkinkan pengguna untuk membuat mereka bergerak, mereka baik pada mereka
cara untuk memenangkan permainan Lima belas.
>> Untuk memenangkan permainan Fifteen, ubin harus berada dalam urutan tertentu, dan
fungsi memenangkan memeriksa apakah permainan dimenangkan.
Ia mengembalikan Benar jika permainan ini menang dan ubin berada dalam urutan yang benar,
dan False sebaliknya.
Jadi untuk memenangkan permainan Fifteen, ubin harus urutan yang meningkat, dengan
ubin kosong di sudut kanan bawah.
Jadi bagaimana Anda memeriksa apakah pengguna telah pindah papan ke kanan
orientasi?
>> Nah, Anda akan iterate atas papan dan memeriksa nilai memastikan bahwa
mereka berada di tempat yang tepat.
Untuk melakukan ini, Anda dapat menggunakan bersarang untuk loop seperti yang Anda lakukan
imbang dan init.
Ada beberapa cara untuk memeriksa dan memvalidasi apakah dewan adalah
benar dan menang a pembentukan, meskipun.
Jika Anda pergi dari kiri ke kanan, mulai dari baris atas ke bawah, maka setiap
Jumlah harus lebih besar dari sebelumnya.
Hati-hati tentang apa yang menghargai Anda sudah dipilih untuk ubin kosong Anda sekalipun.
>> Atau Anda bisa menggunakan variabel counter untuk memastikan bahwa setiap nilai di tempat, jika
Anda datang dengan beberapa jenis rumus untuk mewakili ini.
Jadi bersenang-senang bereksperimen dengan matematika.
Setelah Anda datang dengan cara, kembali Benar sekali pengguna telah memenangkan pertandingan.
Tetapi jika nilai apapun salah, kembali False, pengguna harus terus bergerak
karena mereka tidak memenangkan pertandingan.
Setelah Anda menerapkan cek ini dan, bersama dengan initialize, menggambar, dan bergerak,
Anda selesai permainan Lima belas.
Selamat dan bersenang-senang bermain.
Nama saya adalah Zamyla dan ini adalah CS50.