Membuat Game Sederhana Dengan C atau C++
Saya membuat artikel ini karena tertarik untuk membahas soal aslab lain dalam tugas praktek bahasa pemrograman C tentang Array kepada mahasiswa atau lebih tepatnya mahasiswa Mikroskil. Jadi awalnya kita diminta untuk input n yaitu banyak baris dan kolom untuk mencetak pagar dan spasi sebagai jalannya. Jadi polanya yang diminta jumlah inputan(n) dikali 2. Singkat cerita hasil program yang diminta seperti dibawah ini:
Hasil Program |
Langkah 1:
Disini yang ada perlukan pertama adalah meng-include library dari c atau c++ yaitu :
#include<stdio.h> #include<conio.h>
Library stdio.h adalah standar library input dan output baik menggunakan keyboard, printer, terminal atau dengan jenis file lainnya yang didukung oleh sistem. Kemudian conio.h disini berfungsi untuk menangkap inputan dari keyboard dengan menggunakan getch().
Langkah 2:
int main() { int n,pil,baris,kolom,i,j; printf("N: "); scanf("%d",&n); n=n*2;
Pada baris code diatas berguna untuk deklarasi variable sebagai berikut:
- n untuk jumlah baris dan kolom.
- pil untuk tombol inputan dari keyboard.
- baris untuk posisi x dari bintang.
- kolom untuk posisi y dari bintang.
- i untuk iterasi dalam perulangan.
- j untuk iterasi dalam perulangan.
Untuk mencetak kata atau kalimat kita bisa gunakan printf("format",variable) dan untuk inputan kita bisa memakai scanf("format",variable) dalam c atau cpp.
Langkah 3:
char kotak[n][n]; // create ways for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i%2==0){ kotak[i][j]='#'; } else{ kotak[i][j]=' '; } } }
Pada tahap ini kita membuat jalannya untuk pagar(#) selalu pada baris bilangan genap bila kita mulai perulangan dari i=0, jika dari i=1 maka selalu pada baris bilangan ganjil. Asumsi kita ambil perulangan dari 0 sehingga untuk spasi pada bilangan ganjil. Kemudian kita simpan mereka dalam array 2 dimensi.
Langkah 4:
// set star baris=1,kolom=0; kotak[baris][kolom]='*';
Baris code diatas untuk meletakkan posisi awal bintang.
Langkah 5:
do{ system("cls"); // print them for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%c",kotak[i][j]); } printf("\n"); } printf("press q to exit game."); pil= getch();
Pada tahap ini kita membuat perulangan dimana jika user input "q" maka keluar dari program dan guna system("cls") adalah untuk membersihkan layar ketika bintang bergerak maka bintang sebelumnya akan dihapus, sehingga tidak terjadi pencetakkan 2 bintang atau lebih. Kemudian fungsi pil adalah variable yang menampung inputan dari keyboard.
Langkah 6:
switch(pil){ case 'a': kotak[baris][kolom]=' '; kolom--; if(kolom<0){ kolom=0; } kotak[baris][kolom]='*'; break; case 's': kotak[baris][kolom]=' '; baris+=2; if(baris>n-1){ baris=n-1; } kotak[baris][kolom]='*'; break; case 'd': kotak[baris][kolom]=' '; kolom++; if(kolom>n-1){ kolom=n-1; } kotak[baris][kolom]='*'; break; case 'w': kotak[baris][kolom]=' '; baris-=2; if(baris<2){ baris=1; } kotak[baris][kolom]='*'; break; default: break; } }while(pil!='q'); return 0; }
Pada tahap terakhir, kita melakukan pengecekan tombol inputan dari keyboard, sebagai berikut:
- a untuk bergerak ke-kiri, maka kolom dikurang 1. Kemudian dilakukan pengecekkan jika kolom<0 → kolom = 0, agar tidak terjadi kolom bernilai minus.
- d untuk bergerak ke-kanan, maka kolom ditambah 1. Kemudian dilakukan pengecekkan jika kolom>jumlah kolom → kolom = jumlah kolom, agar tidak terjadi bintang keluar dari jalur.
- w untuk bergerak ke-atas, maka kolom dikurang 2 agar melewati pagar. Kemudian dilakukan pengecekkan jika baris<2 → baris= 1, agar tidak terjadi baris bernilai minus.
- s untuk bergerak ke-bawah, maka kolom ditambah 2 agar melewati pagar. Kemudian dilakukan pengecekkan jika baris>jumlah baris → baris= jumlah baris, agar tidak terjadi bintang keluar dari jalur.
- q untuk keluar dari program.
Jika kita menekan tombol selain diatas maka tidak melakukan apa-apa. Cukup sekian penjelasan dari saya, jika ada penjelasan yang tidak mengerti bisa ditanyakan pada kolom komentar. Terima kasih telah membaca artikel saya. :)