Program Maze Menggunakan Rekursif di C++


Di bawah ini adalah program pencarian jalan keluar dari suatu peta berliku dengan menggunakan metode rekursif, dan peta diambil dari file “.txt” tertentu dimana , yang dirubah ke dalam sebuah array dua dimensi. Dimana tembok penghalang pada contoh saya di bawah, saya inisialisasikan angka delapan(8) dan sewaktu-waktu dapat anda rubah tanpa harus merubah sourcecode. Titik pencarian bermula dari yang ditentukan oleh user yang telah di tulis pada file yang sama dengan file peta. Kemudian terus mencari titik akhir yang tak lain adalah array tersebut berisi huruf Q.

file peta (peta.txt):
14 –>banyak colom pada peta
12 –>banyak baris pada peta
88888888888888
8 88 8 8 8
88 88 8 8 8
88 88 888
8 88 888 8
8 888 88 88
888 88 8 8
8Q888 8 8 8
8 88888888 8
888 8 8 8
8 8 8 8
88888888888888
2 –>start pencarian
2 –>start pencarian

Format penulisan harus sama, dan tidak boleh salah baik panjang kolom dan panjang baris. Dan start pencarian tidak boleh berawal dari tembok, dan harus terletak pada bagian kosong (‘ ‘ atau spasi).

Source code (Maze.cpp):
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

char x[4],z[4],maze[100][100],start_x[100],start_z[100];
int baris,kolom;

void gambar(){
for(int a=0;a<kolom;a++){
for(int b=0;b<baris;b++){
printf(“%3c”,maze[a][b]);
}
printf(“nn”);
}
}

int Atas=1, Kanan=2, Bawah=3, Kiri=4;
void cari(int i,int j){
int a=7;
char sel=maze[i][j],Arah;
if(sel==’Q’){

printf(“Ternyata Komputer ini dapat menemukan jalan keluarnya sendiri…n”);
getch();
exit(0);}
if(sel!=’ ‘)return ;
maze[i][j]=28;
system(“cls”);
gambar(); printf(“%c”,7);

printf(“nnn”);

for(int z=0;z<15000000;z++);

cari(i,j+1);
cari(i+1,j);
cari(i,j-1);
cari(i-1,j);

}

main(){
FILE *FP;
FP=fopen(“peta.txt”,”rt”);
fgets(x,4,FP);fgets(z,4,FP);

baris=atoi(x);kolom=atoi(z);
getch();
for(int i=0;i<kolom;i++)fgets(maze[i],100,FP);

fgets(start_z,100,FP);fgets(start_x,100,FP);
int a=atoi(start_x);int b=atoi(start_z);

gambar();
puts(“Inilah Gambar untuk dicari jalan keluarnya….”);
puts(“Tekan sembarang untuk memulainya”);
printf(“Permulaan pada koordinat %d,%d”,b,a);

getch();
cari(a-1,b-1);
system(“cls”);
printf(“Salah Inputan untuk permulaan posisi”);
getch();
}

9 thoughts on “Program Maze Menggunakan Rekursif di C++

  1. dwi berkata:

    tolong dong buatin program C++ yg soalnya kayak gini :
    jika golongan 1a maka gaji 1000000, jika golongan 2a maka gaji 2500000.
    jika status =”M” maka jenisnya menikah dgn tunjangan anak 200000 dan tunjangan istri 250000.
    gaji bersih adalah gaji + tunjangan.
    pLease bgt ya

  2. akbarindonesia berkata:

    for dwi :
    sudah terkirim lewat email,bos…
    sori telat soalnya baru aja OL…..

  3. reza berkata:

    saya bsa minta kirimin program yang kk buatin buat jg dwi ga??
    soalnya saya agak bingung dengan operator if-nya…
    trim’s

  4. anggi berkata:

    tlg dnx kasi tau tentg prog c++ mggunakan if soalnya saya gak tau.dan buatkan contoh programnya tntang if y….balez y…plezzzz

  5. irwan syah berkata:

    ass?
    saya mnt tolong,soalnya kayak gini:
    1. buat output dari bilangan finonacci
    1+2+3+5+8+13
    2.buat output dari bilangan faktorial
    5!=5!+4!+3!+2!+1!

    buatlah dengan metode rekursif dengan menggunakan pemograman c++

    mohon di publish kan secepatnya…
    coz,3 hari lagi pengen dikumpul…
    thank’s….
    ass.

  6. Ferry Firmansyah berkata:

    Maaf Boleh ikut gabung?

    Saya ada masalah nih…

    bikin program maze tanpa ada penghalang tapi langkahnya seperti kuda pada catur (membentuk huruf l)…

    trus menampilkan langkah2nya pada saat finish…

    pake AI…

    pemogramannya pake bahasa C,..

  7. ezhar berkata:

    minta referensi tentang rekursif di C++.. lagi butuh bgt nih.. mkasi sebelumnya..
    __________________________________________________
    silakan ambil mas,
    d share untuk umum koq…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s