Skip to content

Commit cb142ef

Browse files
committed
Merge branch 'cbermudez97' into main
2 parents 02e20a5 + 7f4ad7c commit cb142ef

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

src/Algorithms.hs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ genRCell rn cn val = do
2626

2727
genRCellFromSet :: Set Cell -> IO [Cell]
2828
genRCellFromSet set = if Set.null set
29-
then do
30-
return []
29+
then return []
3130
else do
3231
let size = Set.size set
3332
r <- randomRIO (0, size - 1)
@@ -46,11 +45,10 @@ generateRandom rn cn ratio = do
4645
let obs_matrix = foldl editMatrixCell matrix (take cant_obs randomCells)
4746
first_cell <- genRCell rn cn 1
4847
let newMatrix = editMatrixCell obs_matrix first_cell
49-
if validateTemplate newMatrix then do
48+
if validateTemplate newMatrix then
5049
return newMatrix
51-
else do
52-
result <- generateRandom rn cn ratio
53-
return result
50+
else
51+
generateRandom rn cn ratio
5452

5553
data Dificulty = Easy | Normal | Hard deriving (Ord, Eq, Show, Read)
5654

@@ -62,20 +60,18 @@ emptyRatio Hard = 70/100
6260
generateRandomGame :: Int -> Int -> Float -> IO Matrix
6361
generateRandomGame rn cn ratio = do
6462
maybeTemplate <- timeout 1000000 $ generateRandom rn cn ratio
65-
if isNothing maybeTemplate then do
66-
game <- generateRandomGame rn cn ratio
67-
return game
63+
if isNothing maybeTemplate then
64+
generateRandomGame rn cn ratio
6865
else do
69-
let template = maybe (blankMatrix rn cn) (\x -> x) maybeTemplate
66+
let template = maybe (blankMatrix rn cn) id maybeTemplate
7067
seed <- randomIO :: IO Int
7168
let gen = mkStdGen seed
7269
let seeds = randoms gen :: [Int]
7370
let solutions = solveAll template seeds
74-
if null solutions then do
75-
game <- generateRandomGame rn cn ratio
76-
return game
77-
else do
78-
return $ head solutions
71+
if null solutions then
72+
generateRandomGame rn cn ratio
73+
else
74+
return $ head solutions
7975

8076
removeCells :: Matrix -> [Cell] -> Int -> Int -> [Int] -> Matrix
8177
removeCells sol@(Matrix rn cn cs) cells ite n seeds =
@@ -97,10 +93,10 @@ removeCells sol@(Matrix rn cn cs) cells ite n seeds =
9793
generateGame :: Int -> Int -> Float -> Dificulty -> IO Matrix
9894
generateGame rn cn ratio dif = do
9995
maybeMatrix <- timeout 60000000 $ generateRandomGame rn cn ratio
100-
if isNothing maybeMatrix then do
96+
if isNothing maybeMatrix then
10197
return $ error "Game not found"
10298
else do
103-
let solution = maybe (blankMatrix rn cn) (\x -> x) maybeMatrix
99+
let solution = maybe (blankMatrix rn cn) id maybeMatrix
104100
let setForRemove = Set.filter (\x -> let v = value x in v > 1 && v < rn * cn) (matrix solution) :: Set Cell
105101
randomCells <- genRCellFromSet setForRemove
106102
let total = Set.size setForRemove

0 commit comments

Comments
 (0)