Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam seri empat tutorial ini, Anda membangun permainan mencocokkan, di mana pemain harus mencocokkan pasangan ikon tersembunyi.
Dalam tutorial ini, Anda merevisi Game Pencocokan agar pasangan yang cocok tetap terlihat dan menampilkan pesan ucapan selamat ketika pemain menang.
Dalam tutorial ini, Anda mempelajari cara:
- Pertahankan pasangan tetap terlihat.
- Verifikasi apakah pemain menang.
- Coba fitur lain.
Prasyarat
Tutorial ini dibangun berdasarkan tutorial sebelumnya ini:
- Membuat aplikasi game yang cocok
- Tambahkan ikon ke permainan yang cocok
- Tambahkan timer di game yang cocok
Pertahankan pasangan tetap terlihat
Ketika pemain cocok dengan pasangan, game harus mengatur ulang dirinya sendiri sehingga tidak lagi melacak label apa pun yang menggunakan variabel referensi firstClicked dan secondClicked.
Ini tidak boleh mengatur ulang warna untuk dua label yang cocok.
Label tersebut terus ditampilkan.
- Tambahkan pernyataan
ifberikut ke metode penanganan aktivitaslabel_Click(). Letakkan di dekat akhir kode tepat di atas pernyataan tempat Anda memulai timer.
// If the player gets this far, the timer isn't
// running and firstClicked isn't null,
// so this must be the second icon the player clicked
// Set its color to black
secondClicked = clickedLabel;
secondClicked.ForeColor = Color.Black;
// If the player clicked two matching icons, keep them
// black and reset firstClicked and secondClicked
// so the player can click another icon
if (firstClicked.Text == secondClicked.Text)
{
firstClicked = null;
secondClicked = null;
return;
}
// If the player gets this far, the player
// clicked two different icons, so start the
// timer (which will wait three quarters of
// a second, and then hide the icons)
timer1.Start();
}
}
Pernyataan if memeriksa apakah ikon di label pertama yang dipilih pemutar sama dengan ikon di label kedua.
Jika ikonnya sama, program akan menjalankan tiga pernyataannya.
Dua pernyataan pertama mengatur ulang variabel referensi firstClicked dan secondClicked.
Mereka tidak lagi melacak label apa pun.
Pernyataan ketiga adalah pernyataan return, yang melewati pernyataan lainnya dalam metode tanpa menjalankannya.
- Jalankan program, lalu mulai pilih kotak pada formulir.
Jika Anda memilih pasangan yang tidak cocok, peristiwa Tick timer akan dipicu. Kedua ikon menghilang.
Jika Anda memilih pasangan yang cocok, pernyataan if baru akan dijalankan.
Pernyataan 'return' membuat metode melewati kode yang memulai timer.
Ikon tetap terlihat.
Memverifikasi apakah pemain menang
Anda telah membuat permainan yang menyenangkan. Setelah seorang pemain menang, permainan akan berakhir. Bagian ini memperkenalkan metode untuk memverifikasi apakah pemain menang.
- Tambahkan metode
CheckForWinner()ke bagian bawah kode Anda, di bawah penanganan aktivitastimer1_Tick().
/// <summary>
/// Check every icon to see if it is matched, by
/// comparing its foreground color to its background color.
/// If all of the icons are matched, the player wins
/// </summary>
private void CheckForWinner()
{
// Go through all of the labels in the TableLayoutPanel,
// checking each one to see if its icon is matched
foreach (Control control in tableLayoutPanel1.Controls)
{
Label iconLabel = control as Label;
if (iconLabel != null)
{
if (iconLabel.ForeColor == iconLabel.BackColor)
return;
}
}
// If the loop didn’t return, it didn't find
// any unmatched icons
// That means the user won. Show a message and close the form
MessageBox.Show("You matched all the icons!", "Congratulations");
Close();
}
Metode ini menggunakan perulangan foreach lain di C# atau perulangan For Each di Visual Basic untuk melewati setiap label di TableLayoutPanel.
Ini memeriksa warna ikon setiap label untuk memverifikasi apakah cocok dengan latar belakang.
Jika warna cocok, ikon tetap tidak terlihat, dan pemain belum mencocokkan semua ikon yang tersisa.
Dalam hal ini, program menggunakan pernyataan return untuk melewati sisa metode.
Jika perulangan melewati semua label tanpa menjalankan pernyataan return, itu berarti bahwa semua ikon pada formulir dicocokkan.
Program ini menunjukkan MessageBox untuk memberi selamat kepada pemain atas kemenangan, dan kemudian memanggil metode Close() untuk mengakhiri permainan.
- Minta penanganan aktivitas Click label memanggil metode
CheckForWinner()baru.
// If the player gets this far, the timer isn't
// running and firstClicked isn't null,
// so this must be the second icon the player clicked
// Set its color to black
secondClicked = clickedLabel;
secondClicked.ForeColor = Color.Black;
// Check to see if the player won
CheckForWinner();
// If the player clicked two matching icons, keep them
// black and reset firstClicked and secondClicked
// so the player can click another icon
if (firstClicked.Text == secondClicked.Text)
{
firstClicked = null;
secondClicked = null;
return;
}
Pastikan program Anda memeriksa pemenang segera setelah menunjukkan ikon kedua yang dipilih pemain. Cari garis tempat Anda mengatur warna ikon kedua yang dipilih, lalu panggil metode CheckForWinner() tepat setelah baris tersebut.
Simpan dan jalankan program. Mainkan permainan dan cocokkan semua ikon. Ketika Anda menang, program menampilkan pesan selamat.
Setelah Anda memilih OK, Permainan Mencocokkan akan ditutup.
Coba fitur lain
Permainan Pencocokan Anda selesai. Anda dapat menambahkan lebih banyak fitur untuk membuat game ini lebih menantang dan menarik. Berikut adalah beberapa opsi.
Ganti ikon dan warna dengan ikon yang Anda pilih.
Coba lihat properti ForeColor dari label.
Tambahkan timer game yang melacak berapa lama waktu yang dibutuhkan pemain untuk menang.
Anda dapat menambahkan label untuk menampilkan waktu yang berlalu pada formulir. Letakkan di atas TableLayoutPanel. Tambahkan timer lain ke formulir untuk melacak waktu. Gunakan kode untuk memulai timer ketika pemain memulai permainan, dan menghentikan timer setelah mereka cocok dengan dua ikon terakhir.
Tambahkan suara ketika pemutar menemukan kecocokan, suara lain ketika pemutar mengungkap dua ikon yang tidak cocok, dan suara ketiga ketika program menyembunyikan ikon lagi.
Untuk memutar suara, Anda dapat menggunakan namespace System.Media. Untuk informasi selengkapnya, lihat Memutar suara di aplikasi Windows Forms (C#) atau Cara memutar audio di Visual Basic.
Membuat permainan lebih sulit dengan membuat papan lebih besar.
Anda harus melakukan lebih dari sekadar menambahkan baris dan kolom ke TableLayoutPanel. Anda juga perlu mempertimbangkan jumlah ikon yang Anda buat.
Buat permainan lebih menantang dengan menyembunyikan ikon pertama jika pemain terlalu lambat merespons.
Langkah berikutnya
Selamat! Anda telah menyelesaikan serangkaian tutorial ini. Anda telah melakukan tugas pemrograman dan desain ini di IDE Visual Studio:
- Objek tersimpan, seperti ikon, dalam daftar
- Menggunakan perulangan di C# atau Visual Basic untuk melakukan iterasi melalui daftar
- Melacak status dengan menggunakan variabel referensi
- Membangun penanganan aktivitas untuk merespons peristiwa untuk beberapa objek
- Menambahkan timer yang menghitung mundur dan mengaktifkan peristiwa
Lanjutkan ke artikel ini untuk mendalami Windows Forms Designer.