Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(args) {
- var veggies = {
- '{&}' : 0,
- '{*}' : 0,
- '{#}' : 0,
- '{!}' : 0,
- };
- var visitedCells = [];
- var directions = args[0].split(', ');
- var wallHits = 0;
- var veggiesFound = false;
- var matrix = [];
- var cellsPassed = false;
- for (var i = 0, j = 1; i < args.length - 1; i++, j++) {
- matrix[i] = args[j].split(', ');
- }
- var concatArr = [];
- var keys = Object.keys(veggies);
- var currentRow = 0;
- var currentCol = 0;
- for (var dir in directions) {
- var hitWall = false;
- if (directions[dir] === 'up') {
- if (currentRow === 0) {
- wallHits++;
- hitWall = true;
- }
- else {
- currentRow--;
- cellsPassed = true;
- }
- }
- else if (directions[dir] === 'down') {
- if (currentRow === matrix.length - 1) {
- wallHits++;
- hitWall = true;
- }
- else {
- currentRow++;
- cellsPassed = true;
- }
- }
- else if (directions[dir] === 'left') {
- if (currentCol === 0) {
- wallHits++;
- hitWall = true;
- }
- else {
- currentCol--;
- cellsPassed = true;
- }
- }
- else if (directions[dir] === 'right') {
- if (currentCol === matrix[0].length - 1) {
- wallHits++;
- hitWall = true;
- }
- else {
- currentCol++;
- cellsPassed = true;
- }
- }
- var tempStr = matrix[currentRow][currentCol];
- if (visitedCells.indexOf(currentRow + '' + currentCol) < 0) {
- visitedCells.push(currentRow + '' + currentCol);
- for (var key in keys) {
- if (tempStr.indexOf(keys[key]) > -1 && hitWall === false) {
- veggies[keys[key]] += 1;
- veggiesFound = true;
- tempStr = tempStr.replace(keys[key], '@');
- }
- }
- concatArr.push(tempStr);
- }
- }
- var finalPart;
- if (cellsPassed === false) {
- finalPart = 'no';
- }
- else {
- finalPart = concatArr.join('|');
- }
- var finalStr = JSON.stringify(veggies).replace('{*}','*').replace('{&}','&').replace('{#}','#').replace('{!}','!').replace('}', '') +
- ',\"wall hits\":' + wallHits + '}\n' + finalPart;
- console.log(finalStr);
- }
Advertisement
Add Comment
Please, Sign In to add comment