Improve code
This commit is contained in:
parent
a94312463b
commit
1b5a8ee458
@ -69,11 +69,9 @@ checkGridLoop :: Position -> Direction -> Grid -> Bool
|
|||||||
checkGridLoop startPosition direction grid = let (nextPosition, newDirection) = getNextPosition startPosition direction grid
|
checkGridLoop startPosition direction grid = let (nextPosition, newDirection) = getNextPosition startPosition direction grid
|
||||||
newDirectionChar = printDirection newDirection
|
newDirectionChar = printDirection newDirection
|
||||||
newGrid = markVisited nextPosition newDirectionChar grid
|
newGrid = markVisited nextPosition newDirectionChar grid
|
||||||
in if not $ nextPosition `isInside` grid
|
in (nextPosition `isInside` grid)
|
||||||
then False
|
&& ((getGridVal nextPosition grid == newDirectionChar)
|
||||||
else if getGridVal nextPosition grid == newDirectionChar
|
|| checkGridLoop nextPosition newDirection newGrid)
|
||||||
then True
|
|
||||||
else checkGridLoop nextPosition newDirection newGrid
|
|
||||||
|
|
||||||
setGridObstacles :: Position -> Grid -> [Grid]
|
setGridObstacles :: Position -> Grid -> [Grid]
|
||||||
setGridObstacles startPosition grid = let positions = [ (x, y) | x <- [0..(length grid - 1)], y <- [0..(length (head grid) - 1)], (x, y) /= startPosition, getGridVal (x, y) grid == 'X' ]
|
setGridObstacles startPosition grid = let positions = [ (x, y) | x <- [0..(length grid - 1)], y <- [0..(length (head grid) - 1)], (x, y) /= startPosition, getGridVal (x, y) grid == 'X' ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user