Kali ini ali ini Admin @feidodol akan membuat Program Game Pacman ... Ikuti Terus yaaaaaa...
#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;
}
Dan Hasilnya Akan Seperti ini...
#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;
}
Dan Hasilnya Akan Seperti ini...
Komentar
Posting Komentar