Generate random chess position: Difference between revisions

m
Line 630:
isPosOccupied :: Pos -> ChessBoard -> Bool
isPosOccupied p = occupied . found
where found = find (\(s_, p'') -> p == p'')
occupied (Just (EmptySquare, _)) = False
occupied _ = True
Line 682:
else pos
where pos = (,) <$> chr <*> num
num ::= IOgetStdRandom Int$ randomR (1,8)
numchr = getStdRandom ($ randomR (1'a',8)'h')
chr :: IO Char
chr = getStdRandom (randomR ('a', 'h'))
 
randomPiece :: IO Square
randomPiece = ChessPiece <$> rank <*> color
where rank :: IO= PieceRankgetStdRandom random
rank = getStdRandom random
color :: IO PieceColor
color = getStdRandom random
 
Line 723 ⟶ 719:
firstPos Black = 8
 
num :: IO Int
num = getStdRandom (randomR (1,16))
 
randomPawn :: IO Square
randomPawn = ChessPiece Pawn <$> rColor
where rColor ::= IOgetStdRandom PieceColor(random)
rColor = getStdRandom (random)
 
placeRemaining :: ChessBoard -> IO ChessBoard
Line 746 ⟶ 739:
_ -> True) fullBoard
 
num :: Int -> IO Int
num mx = getStdRandom $ randomR (5, mx)
 
Anonymous user