Ticker

6/recent/ticker-posts

Advertisement

Responsive Advertisement

membuat program permainan sederhana dengan bahasa C

assalamualaikum wr.wb.

alhamdulillah, kali ini saya akan memberikan code untuk membuat program game seperti pacman sederhana,

untuk source code nya bisa dilihat:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

#define MAKS 10


void cetak(int kotak[MAKS][MAKS]);
int CekTujuan (int posisiX, int  posisiY, int tujuanX, int tujuanY);

int main(){
    int kotak[MAKS][MAKS] = {
        {    1, 1, 1, 1, 1, 1, 1, 1, 1, 1         },
        {    1, 0, 0, 0, 0, 0, 0, 0, 0, 1        },
        {    1, 0, 0, 0, 0, 0, 0, 0, 0, 1        },
        {    0, 0, 0, 0, 0, 0, 0, 0, 0, 1        },
        {    1, 0, 0, 1, 1, 1, 1, 0, 0, 1        },
        {    1, 0, 0, 1, 0, 0, 1, 0, 0, 1        },
        {    1, 0, 0, 1, 0, 0, 1, 0, 0, 1        },
        {    1, 0, 0, 1, 0, 0, 1, 0, 0, 1        },
        {    1, 0, 0, 1, 0, 0, 1, 0, 0, 0        },
        {    1, 1, 1, 1, 0, 0, 1, 1, 1, 1        },
    };
   
    int posisiX = 3, posisiY = 0, keluar;
    int karakter, banyakLangkah, tujuanX = 8, tujuanY = 9;
    kotak [posisiX][posisiY] = 2;
   
    keluar = 0;
    banyakLangkah = 0;
   
    do{
        system("cls");
        cetak(kotak);
        if(CekTujuan(posisiX, posisiY, tujuanX, tujuanY)){
            printf("\n\n\n\n\n\nSELESAI\n");
            printf("banyak langkah = %d\n\n\n\n\n\n", banyakLangkah);
            break;
        }
       
        karakter = getch();
        banyakLangkah++;
       
        switch(karakter){
            case 49: //atas
                if(posisiX > 0 && kotak[posisiX-1][posisiY] == 0){
                    kotak[posisiX][posisiY] = 0;
                    posisiX--;
                    kotak[posisiX][posisiY] = 2;
                }
                break;
               
            case 50: //bawah
                if(posisiX < MAKS-1 && kotak [posisiX+1][posisiY] == 0){
                    kotak[posisiX][posisiY] = 0;
                    posisiX++;
                    kotak[posisiX][posisiY] = 2;
                }
                break;
               
            case 51: //kiri
                if(posisiY > 0 && kotak[posisiX][posisiY-1] == 0){
                    kotak[posisiX][posisiY] = 0;
                    posisiY--;
                    kotak[posisiX][posisiY] = 2;
                }
                break;
           
            case 52: //kanan
                if(posisiY < MAKS-1 && kotak[posisiX][posisiY+1] == 0){
                    kotak[posisiX][posisiY] = 0;
                    posisiY++;
                    kotak[posisiX][posisiY] = 2;
                }
                break;
               
            case 53: keluar=1; break;
        }
    }while(!keluar );
   
    return 0;
}

void cetak(int kotak[MAKS][MAKS]){
    int baris, kolom;
   
    for(baris=0; baris<MAKS; baris++){
        for(kolom=0; kolom<MAKS; kolom++)
            switch(kotak[baris][kolom]){
                case 0: printf(" "); break;
                case 1: printf("+"); break;
                case 2: printf("*"); break;
            }
            printf("\n");
    }
}
int CekTujuan (int posisiX, int posisiY, int tujuanX, int tujuanY){
    return posisiX == tujuanX && posisiY == tujuanY;
}


apabila di run akan muncul













cara bermainya dengan menggerakkan tanda * sampai ke pintu keluar dengan cara menekan tombol 1/2/3/4, atau 5 untuk
1 = atas
2 = bawah
3 = kiri
4 = kanan
5 = keluar dari game

monggo bisa dicoba.

semoga bermanfaat,
wassalamualaikum wr.wb

Post a Comment

4 Comments

  1. trimakasih programnya sangat membantu

    ReplyDelete
    Replies
    1. sama2...kalau mau request contoh2 program yang lain bisa komen.. :)

      Delete
  2. bagus pogramnya, request game tetris dong :)

    ReplyDelete
  3. Halo mas bisa request game yang programnya lebih sederhana? Terimakasih

    ReplyDelete