Thursday, April 16, 2026

OJO TILE Untuk Mencari Jalan Terpendek (Maps Google Simple cash)

<?php

$grid = [
    ['S', '.', '.', '#', '.'],
    ['#', '#', '.', '#', '.'],
    ['.', '.', '.', '.', '.'],
    ['.', '#', '#', '#', '.'],
    ['.', '.', '.', 'G', '.'],
];

$rows = count($grid);
$cols = count($grid[0]);

$start = [0,0];
$goal = [4,3];

$directions = [
    [1,0], [-1,0], [0,1], [0,-1]
];

// queue untuk BFS
$queue = [];
$queue[] = [$start[0], $start[1], 0]; // row, col, langkah

$visited = [];
$visited[$start[0]][$start[1]] = true;

while (!empty($queue)) {
    [$r, $c, $dist] = array_shift($queue);

    if ($r == $goal[0] && $c == $goal[1]) {
        echo "Jarak terpendek: $dist\n";
        break;
    }

    foreach ($directions as $d) {
        $nr = $r + $d[0];
        $nc = $c + $d[1];

        if ($nr >= 0 && $nr < $rows && $nc >= 0 && $nc < $cols) {
            if (!isset($visited[$nr][$nc]) && $grid[$nr][$nc] != '#') {
                $visited[$nr][$nc] = true;
                $queue[] = [$nr, $nc, $dist + 1];
            }
        }
    }
}

?> 

No comments:

Post a Comment

Menjadi Programmer Bukan Hanya Tentang Coding, Tapi Tentang Mempermudah Kehidupan

Semenjak menjadi seorang programmer, ada satu cara pandang yang perlahan berubah dalam diri saya. Saya mulai berpikir bahwa ilmu pemrograman...