Find safe place in landmines tracks

Here given code implementation process.
/*
C Program
Find safe path in landmines
*/
#include <stdio.h>
#define R 11
#define C 10
// Print location
void printLocation(int matrix[R][C], char landmines)
{
for (int i = 0; i < R; ++i)
{
for (int j = 0; j < C; ++j)
{
if(matrix[i][j] == 1)
{
printf(" 1");
}
else
{
printf(" %c", landmines);
}
}
printf("\n");
}
printf("\n");
}
// When landmine exists then change adjacent element
void changePath(int collection[R][C],int path[R][C],int i, int j)
{
int x = 0;
int y = 0;
// Set value of possible 8 direction of given i and j
for (x = i-1; x <= i+1; ++x)
{
for (y = j-1; y <= j + 1 ; ++y)
{
if(x >= 0 && x < R && y >= 0 && y < C)
{
path[x][y] = collection[i][j];
}
}
}
}
// Locate all elements locations that do not activate any landline
void findSelfLocation(int collection[R][C])
{
int path[R][C];
int i = 0;
int j = 0;
// Set default value
for (i = 0; i < R; ++i)
{
for (j = 0; j < C; ++j)
{
path[i][j] = 1;
}
}
for (i = 0; i < R; ++i)
{
for (j = 0; j < C; ++j)
{
if(collection[i][j]==0)
{
// landmines found
changePath(collection,path,i,j);
}
}
}
printf("\n Given Location \n");
printLocation(collection,'0');
printf("\n Safe Location \n");
printLocation(path,'-');
}
int main()
{
// Here zero represent landmine locations
// One indicate a safe position
int collection[R][C] =
{
{ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 }
};
findSelfLocation(collection);
return 0;
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
/*
Java Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
public void printLocation(int[][] matrix,int r, int c, char landmines)
{
for (int i = 0; i < r; ++i)
{
for (int j = 0; j < c; ++j)
{
if (matrix[i][j] == 1)
{
System.out.print(" 1");
}
else
{
System.out.print(" " + landmines );
}
}
System.out.print("\n");
}
System.out.print("\n");
}
// When landmine exists then change adjacent element
public void changePath(int[][] collection, int[][] path,int r, int c, int i, int j)
{
int x = 0;
int y = 0;
// Set value of possible 8 direction of given i and j
for (x = i - 1; x <= i + 1; ++x)
{
for (y = j - 1; y <= j + 1; ++y)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path[x][y] = collection[i][j];
}
}
}
}
// Locate all elements locations that do not activate any landline
public void findSelfLocation(int[][] collection)
{
int r = collection.length;
int c = collection[0].length;
int[][] path = new int[r][c];
int i = 0;
int j = 0;
// Set default value
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
path[i][j] = 1;
}
}
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
if (collection[i][j] == 0)
{
// landmines found
changePath(collection, path, r,c, i, j);
}
}
}
System.out.print("\n Given Location \n");
printLocation(collection,r,c, '0');
System.out.print("\n Safe Location \n");
printLocation(path,r,c, '-');
}
public static void main(String[] args)
{
Location task = new Location();
// Here zero represent landmine locations
// One indicate a safe position
int[][] collection =
{
{ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 }
};
task.findSelfLocation(collection);
}
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
// Include header file
#include <iostream>
#define R 11
#define C 10
using namespace std;
/*
C++ Program
Find safe path in landmines
*/
// Tree Node
class Location
{
public:
// Print location
void printLocation(int matrix[R][C], char landmines)
{
for (int i = 0; i < R; ++i)
{
for (int j = 0; j < C; ++j)
{
if (matrix[i][j] == 1)
{
cout << " 1";
}
else
{
cout << " " << landmines;
}
}
cout << "\n";
}
cout << "\n";
}
// When landmine exists then change adjacent element
void changePath(int collection[R][C], int path[R][C], int i, int j)
{
int x = 0;
int y = 0;
// Set value of possible 8 direction of given i and j
for (x = i - 1; x <= i + 1; ++x)
{
for (y = j - 1; y <= j + 1; ++y)
{
if (x >= 0 && x < R && y >= 0 && y < C)
{
path[x][y] = collection[i][j];
}
}
}
}
// Locate all elements locations that do not activate any landline
void findSelfLocation(int collection[R][C])
{
int path[R][C];
int i = 0;
int j = 0;
// Set default value
for (i = 0; i < R; ++i)
{
for (j = 0; j < C; ++j)
{
path[i][j] = 1;
}
}
for (i = 0; i < R; ++i)
{
for (j = 0; j < C; ++j)
{
if (collection[i][j] == 0)
{
// landmines found
this->changePath(collection, path, i, j);
}
}
}
cout << "\n Given Location \n";
this->printLocation(collection, '0');
cout << "\n Safe Location \n";
this->printLocation(path, '-');
}
};
int main()
{
Location task = Location();
// Here zero represent landmine locations
// One indicate a safe position
int collection[R][C] =
{
{ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 }
};
task.findSelfLocation(collection);
return 0;
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
// Include namespace system
using System;
/*
C# Program
Find safe path in landmines
*/
// Tree Node
public class Location
{
// Print location
public void printLocation(int[,] matrix, int r, int c, char landmines)
{
for (int i = 0; i < r; ++i)
{
for (int j = 0; j < c; ++j)
{
if (matrix[i,j] == 1)
{
Console.Write(" 1");
}
else
{
Console.Write(" " + landmines);
}
}
Console.Write("\n");
}
Console.Write("\n");
}
// When landmine exists then change adjacent element
public void changePath(int[,] collection, int[,] path, int r, int c, int i, int j)
{
int x = 0;
int y = 0;
// Set value of possible 8 direction of given i and j
for (x = i - 1; x <= i + 1; ++x)
{
for (y = j - 1; y <= j + 1; ++y)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path[x,y] = collection[i,j];
}
}
}
}
// Locate all elements locations that do not activate any landline
public void findSelfLocation(int[,] collection)
{
int r = collection.GetLength(0);
int c = collection.GetLength(1);
int[,] path = new int[r,c];
int i = 0;
int j = 0;
// Set default value
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
path[i,j] = 1;
}
}
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
if (collection[i,j] == 0)
{
// landmines found
changePath(collection, path, r, c, i, j);
}
}
}
Console.Write("\n Given Location \n");
printLocation(collection, r, c, '0');
Console.Write("\n Safe Location \n");
printLocation(path, r, c, '-');
}
public static void Main(String[] args)
{
Location task = new Location();
// Here zero represent landmine locations
// One indicate a safe position
int[,] collection =
{
{ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 }
};
task.findSelfLocation(collection);
}
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
<?php
/*
Php Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
public function printLocation( & $matrix, $r, $c, $landmines)
{
for ($i = 0; $i < $r; ++$i)
{
for ($j = 0; $j < $c; ++$j)
{
if ($matrix[$i][$j] == 1)
{
echo " 1";
}
else
{
echo " ". $landmines;
}
}
echo "\n";
}
echo "\n";
}
// When landmine exists then change adjacent element
public function changePath( & $collection, & $path, $r, $c, $i, $j)
{
$x = 0;
$y = 0;
// Set value of possible 8 direction of given i and j
for ($x = $i - 1; $x <= $i + 1; ++$x)
{
for ($y = $j - 1; $y <= $j + 1; ++$y)
{
if ($x >= 0 && $x < $r && $y >= 0 && $y < $c)
{
$path[$x][$y] = $collection[$i][$j];
}
}
}
}
// Locate all elements locations that do not activate any landline
public function findSelfLocation( & $collection)
{
$r = count($collection);
$c = count($collection[0]);
$path = array_fill(0, $r, array_fill(0, $c, 1));
$i = 0;
$j = 0;
for ($i = 0; $i < $r; ++$i)
{
for ($j = 0; $j < $c; ++$j)
{
if ($collection[$i][$j] == 0)
{
// landmines found
$this->changePath($collection, $path, $r, $c, $i, $j);
}
}
}
echo "\n Given Location \n";
$this->printLocation($collection, $r, $c, '0');
echo "\n Safe Location \n";
$this->printLocation($path, $r, $c, '-');
}
}
function main()
{
$task = new Location();
// Here zero represent landmine locations
// One indicate a safe position
$collection = array(
array(1, 1, 1, 1, 0, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(0, 1, 1, 1, 1, 1, 1, 1, 1, 0),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 0, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
array(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 0, 1, 1, 1)
);
$task->findSelfLocation($collection);
}
main();
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
/*
Node Js Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
printLocation(matrix, r, c, landmines)
{
for (var i = 0; i < r; ++i)
{
for (var j = 0; j < c; ++j)
{
if (matrix[i][j] == 1)
{
process.stdout.write(" 1");
}
else
{
process.stdout.write(" " + landmines);
}
}
process.stdout.write("\n");
}
process.stdout.write("\n");
}
// When landmine exists then change adjacent element
changePath(collection, path, r, c, i, j)
{
var x = 0;
var y = 0;
// Set value of possible 8 direction of given i and j
for (x = i - 1; x <= i + 1; ++x)
{
for (y = j - 1; y <= j + 1; ++y)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path[x][y] = collection[i][j];
}
}
}
}
// Locate all elements locations that do not activate any landline
findSelfLocation(collection)
{
var r = collection.length;
var c = collection[0].length;
var path = Array(r).fill(0).map(() => new Array(c).fill(1));
var i = 0;
var j = 0;
for (i = 0; i < r; ++i)
{
for (j = 0; j < c; ++j)
{
if (collection[i][j] == 0)
{
// landmines found
this.changePath(collection, path, r, c, i, j);
}
}
}
process.stdout.write("\n Given Location \n");
this.printLocation(collection, r, c, '0');
process.stdout.write("\n Safe Location \n");
this.printLocation(path, r, c, '-');
}
}
function main()
{
var task = new Location();
// Here zero represent landmine locations
// One indicate a safe position
var collection = [
[1, 1, 1, 1, 0, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 0, 1, 1, 1]
];
task.findSelfLocation(collection);
}
main();
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
# Python 3 Program
# Find safe path in landmines
# Tree Node
class Location :
# Print location
def printLocation(self, matrix, r, c, landmines) :
i = 0
while (i < r) :
j = 0
while (j < c) :
if (matrix[i][j] == 1) :
print(" 1", end = "")
else :
print(" ", landmines, end = "")
j += 1
print(end = "\n")
i += 1
print(end = "\n")
# When landmine exists then change adjacent element
def changePath(self, collection, path, r, c, i, j) :
x = i - 1
y = 0
# Set value of possible 8 direction of given i and j
while (x <= i + 1) :
y = j - 1
while (y <= j + 1) :
if (x >= 0 and x < r and y >= 0 and y < c) :
path[x][y] = collection[i][j]
y += 1
x += 1
# Locate all elements locations that do not activate any landline
def findSelfLocation(self, collection) :
r = len(collection)
c = len(collection[0])
path = [[1] * (c) for _ in range(r) ]
i = 0
j = 0
while (i < r) :
j = 0
while (j < c) :
if (collection[i][j] == 0) :
# landmines found
self.changePath(collection, path, r, c, i, j)
j += 1
i += 1
print("\n Given Location ")
self.printLocation(collection, r, c, '0')
print("\n Safe Location ")
self.printLocation(path, r, c, '-')
def main() :
task = Location()
# Here zero represent landmine locations
# One indicate a safe position
collection = [
[1, 1, 1, 1, 0, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 0, 1, 1, 1]
]
task.findSelfLocation(collection)
if __name__ == "__main__": main()
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
# Ruby Program
# Find safe path in landmines
# Tree Node
class Location
# Print location
def printLocation(matrix, r, c, landmines)
i = 0
while (i < r)
j = 0
while (j < c)
if (matrix[i][j] == 1)
print(" 1")
else
print(" ", landmines)
end
j += 1
end
print("\n")
i += 1
end
print("\n")
end
# When landmine exists then change adjacent element
def changePath(collection, path, r, c, i, j)
x = i - 1
y = 0
# Set value of possible 8 direction of given i and j
while (x <= i + 1)
y = j - 1
while (y <= j + 1)
if (x >= 0 && x < r && y >= 0 && y < c)
path[x][y] = collection[i][j]
end
y += 1
end
x += 1
end
end
# Locate all elements locations that do not activate any landline
def findSelfLocation(collection)
r = collection.length
c = collection[0].length
path = Array.new(r) {Array.new(c) {1}}
i = 0
j = 0
while (i < r)
j = 0
while (j < c)
if (collection[i][j] == 0)
# landmines found
self.changePath(collection, path, r, c, i, j)
end
j += 1
end
i += 1
end
print("\n Given Location \n")
self.printLocation(collection, r, c, '0')
print("\n Safe Location \n")
self.printLocation(path, r, c, '-')
end
end
def main()
task = Location.new()
# Here zero represent landmine locations
# One indicate a safe position
collection = [
[1, 1, 1, 1, 0, 1, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] , [0, 1, 1, 1, 1, 1, 1, 1, 1, 0] , [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 0, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 1, 1, 1, 1, 0] , [1, 1, 0, 1, 1, 1, 1, 1, 1, 1] , [1, 1, 0, 1, 1, 1, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] , [1, 1, 1, 1, 1, 1, 0, 1, 1, 1]
]
task.findSelfLocation(collection)
end
main()
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
/*
Scala Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
def printLocation(matrix: Array[Array[Int]], r: Int, c: Int, landmines: Char): Unit = {
var i: Int = 0;
while (i < r)
{
var j: Int = 0;
while (j < c)
{
if (matrix(i)(j) == 1)
{
print(" 1");
}
else
{
print(" " + landmines);
}
j += 1;
}
print("\n");
i += 1;
}
print("\n");
}
// When landmine exists then change adjacent element
def changePath(collection: Array[Array[Int]], path: Array[Array[Int]], r: Int, c: Int, i: Int, j: Int): Unit = {
var x: Int = i - 1;
var y: Int = 0;
// Set value of possible 8 direction of given i and j
while (x <= i + 1)
{
y = j - 1;
while (y <= j + 1)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path(x)(y) = collection(i)(j);
}
y += 1;
}
x += 1;
}
}
// Locate all elements locations that do not activate any landline
def findSelfLocation(collection: Array[Array[Int]]): Unit = {
var r: Int = collection.length;
var c: Int = collection(0).length;
var path: Array[Array[Int]] = Array.fill[Int](r, c)(1);
var i: Int = 0;
var j: Int = 0;
while (i < r)
{
j = 0;
while (j < c)
{
if (collection(i)(j) == 0)
{
// landmines found
this.changePath(collection, path, r, c, i, j);
}
j += 1;
}
i += 1;
}
print("\n Given Location \n");
this.printLocation(collection, r, c, '0');
print("\n Safe Location \n");
this.printLocation(path, r, c, '-');
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Location = new Location();
// Here zero represent landmine locations
// One indicate a safe position
var collection: Array[Array[Int]] = Array(
Array(1, 1, 1, 1, 0, 1, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
Array(0, 1, 1, 1, 1, 1, 1, 1, 1, 0),
Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 0, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
Array(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
Array(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
Array(1, 1, 1, 1, 1, 1, 0, 1, 1, 1)
);
task.findSelfLocation(collection);
}
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
/*
Swift 4 Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
func printLocation(_ matrix: [[Int]], _ r: Int, _ c: Int, _ landmines: Character)
{
var i: Int = 0;
while (i < r)
{
var j: Int = 0;
while (j < c)
{
if (matrix[i][j] == 1)
{
print(" 1", terminator: "");
}
else
{
print(" ", landmines, terminator: "");
}
j += 1;
}
print(terminator: "\n");
i += 1;
}
print(terminator: "\n");
}
// When landmine exists then change adjacent element
func changePath(_ collection: [[Int]], _ path: inout[[Int]], _ r: Int, _ c: Int, _ i: Int, _ j: Int)
{
var x: Int = i - 1;
var y: Int = 0;
// Set value of possible 8 direction of given i and j
while (x <= i + 1)
{
y = j - 1;
while (y <= j + 1)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path[x][y] = collection[i][j];
}
y += 1;
}
x += 1;
}
}
// Locate all elements locations that do not activate any landline
func findSelfLocation(_ collection: [
[Int]
])
{
let r: Int = collection.count;
let c: Int = collection[0].count;
var path: [[Int]] = Array(repeating: Array(repeating: 1, count: c), count: r);
var i: Int = 0;
var j: Int = 0;
while (i < r)
{
j = 0;
while (j < c)
{
if (collection[i][j] == 0)
{
// landmines found
self.changePath(collection, &path, r, c, i, j);
}
j += 1;
}
i += 1;
}
print("\n Given Location ");
self.printLocation(collection, r, c, "0");
print("\n Safe Location ");
self.printLocation(path, r, c, "-");
}
}
func main()
{
let task: Location = Location();
// Here zero represent landmine locations
// One indicate a safe position
let collection: [[Int]] = [
[1, 1, 1, 1, 0, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 0, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ,
[1, 1, 1, 1, 1, 1, 0, 1, 1, 1]
];
task.findSelfLocation(collection);
}
main();
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
/*
Kotlin Program
Find safe path in landmines
*/
// Tree Node
class Location
{
// Print location
fun printLocation(matrix: Array <Array<Int>> , r: Int, c: Int, landmines: Char): Unit
{
var i: Int = 0;
while (i < r)
{
var j: Int = 0;
while (j < c)
{
if (matrix[i][j] == 1)
{
print(" 1");
}
else
{
print(" " + landmines);
}
j += 1;
}
print("\n");
i += 1;
}
print("\n");
}
// When landmine exists then change adjacent element
fun changePath(collection: Array < Array < Int >> , path: Array < Array < Int >> , r: Int, c: Int, i: Int, j: Int): Unit
{
var x: Int = i - 1;
var y: Int = j - 1;
// Set value of possible 8 direction of given i and j
while (x <= i + 1)
{
while (y <= j + 1)
{
if (x >= 0 && x < r && y >= 0 && y < c)
{
path[x][y] = collection[i][j];
}
y += 1;
}
y = j - 1;
x += 1;
}
}
// Locate all elements locations that do not activate any landline
fun findSelfLocation(collection: Array<Array<Int>> ): Unit
{
var r: Int = collection.count();
var c: Int = collection[0].count();
var path: Array < Array < Int >> = Array(r)
{
Array(c)
{
1
}
};
var i: Int = 0;
var j: Int = 0;
while (i < r)
{
while (j < c)
{
if (collection[i][j] == 0)
{
// landmines found
this.changePath(collection, path, r, c, i, j);
}
j += 1;
}
j = 0;
i += 1;
}
print("\n Given Location \n");
this.printLocation(collection, r, c, '0');
print("\n Safe Location \n");
this.printLocation(path, r, c, '-');
}
}
fun main(args: Array < String > ): Unit
{
var task: Location = Location();
// Here zero represent landmine locations
// One indicate a safe position
var collection: Array <Array<Int>> = arrayOf(
arrayOf(1, 1, 1, 1, 0, 1, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
arrayOf(0, 1, 1, 1, 1, 1, 1, 1, 1, 0),
arrayOf(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 0, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
arrayOf(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
arrayOf(1, 1, 0, 1, 1, 1, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
arrayOf(1, 1, 1, 1, 1, 1, 0, 1, 1, 1)
);
task.findSelfLocation(collection);
}
Output
Given Location
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 1 1 1
Safe Location
1 1 1 - - - 1 1 1 1
- - 1 - - - 1 1 - -
- - 1 1 1 1 1 1 - -
- - 1 1 1 1 1 1 - -
1 1 1 1 - - - 1 1 1
1 1 1 1 - - - 1 - -
1 - - - - - - 1 - -
1 - - - 1 1 1 1 - -
1 - - - 1 1 1 1 1 1
1 - - - 1 - - - 1 1
1 1 1 1 1 - - - 1 1
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment