Skip to content

Commit 15ee7a8

Browse files
committed
Merge remote-tracking branch 'origin/main' into main
2 parents 6b007dc + cb142ef commit 15ee7a8

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/Algorithms.hs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ genRCell rn cn val = do
2929

3030
genRCellFromSet :: Set Cell -> IO [Cell]
3131
genRCellFromSet set = if Set.null set
32-
then do
33-
return []
32+
then return []
3433
else do
3534
let size = Set.size set
3635
r <- randomRIO (0, size - 1)
@@ -50,11 +49,10 @@ generateRandom rn cn ratio = do
5049
let obs_matrix = foldl editMatrixCell matrix (take cant_obs randomCells)
5150
first_cell <- genRCell rn cn 1
5251
let newMatrix = editMatrixCell obs_matrix first_cell
53-
if validateTemplate newMatrix then do
52+
if validateTemplate newMatrix then
5453
return newMatrix
55-
else do
56-
result <- generateRandom rn cn ratio
57-
return result
54+
else
55+
generateRandom rn cn ratio
5856

5957

6058
data Difficulty = Easy | Normal | Hard deriving (Ord, Eq, Show, Read)
@@ -69,20 +67,18 @@ emptyRatio Hard = 70/100
6967
generateRandomGame :: Int -> Int -> Float -> IO Matrix
7068
generateRandomGame rn cn ratio = do
7169
maybeTemplate <- timeout 1000000 $ generateRandom rn cn ratio
72-
if isNothing maybeTemplate then do
73-
game <- generateRandomGame rn cn ratio
74-
return game
70+
if isNothing maybeTemplate then
71+
generateRandomGame rn cn ratio
7572
else do
76-
let template = maybe (blankMatrix rn cn) (\x -> x) maybeTemplate
73+
let template = maybe (blankMatrix rn cn) id maybeTemplate
7774
seed <- randomIO :: IO Int
7875
let gen = mkStdGen seed
7976
let seeds = randoms gen :: [Int]
8077
let solutions = solveAll template seeds
81-
if null solutions then do
82-
game <- generateRandomGame rn cn ratio
83-
return game
84-
else do
85-
return $ head solutions
78+
if null solutions then
79+
generateRandomGame rn cn ratio
80+
else
81+
return $ head solutions
8682

8783

8884
removeCells :: Matrix -> [Cell] -> Int -> Int -> [Int] -> Matrix
@@ -109,7 +105,7 @@ generateGame rn cn ratio dif to = do
109105
if isNothing maybeMatrix then do
110106
return (False, blankMatrix 1 1)
111107
else do
112-
let solution = maybe (blankMatrix rn cn) (\x -> x) maybeMatrix
108+
let solution = maybe (blankMatrix rn cn) id maybeMatrix
113109
let setForRemove = Set.filter (\x -> let v = value x in v > 1 && v < rn * cn) (matrix solution) :: Set Cell
114110
randomCells <- genRCellFromSet setForRemove
115111
let total = Set.size setForRemove

0 commit comments

Comments
 (0)