Membuat Game Sederhana Dengan C atau C++

Unknown 3 8:00 AM
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:
program c dan cpp sederhana
Hasil Program
Anda dapat download code-nya pada Github saya, berikut link-nya: simpleGame.c.


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, printerterminal 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. :)


ideafuse



Supported By ideafuse

Related Posts

Tutorial 3762652851568722188
Comments
3 Comments
Facebook Comments by Media Blogger

3 comments

Ini langkah awal yang bagus Bro....jika ingin lebih baik lagi gunakan grafik....ini saya ada contohnya

www.heriady.com

ya bro, tar kapan2 dicoba :)

gan mau tanya ya, jadi nanti hasil akhirnya tanda pagar nya itu bergerak engga ya supaya bintang lewatnya lebih susah

Post a Comment

Search

Ikuti Channel Youtube Aku Yaa.. Jangan Lupa di subscribe. Terima kasih.

Popular Posts

Translate