Skip to content

Instantly share code, notes, and snippets.

@presci
Last active January 22, 2022 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save presci/b8b3ac2a52528339c33b6cb018248668 to your computer and use it in GitHub Desktop.
Save presci/b8b3ac2a52528339c33b6cb018248668 to your computer and use it in GitHub Desktop.
module Main where
import qualified Data.List as List
{--
This are the bingo numbers. Try to match the numbers in card. The numbers that matches any bingo card line
vertically/horizontally is the winner
7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1
This are the bingo cards
22 13 17 11 0
8 2 23 4 24
21 9 14 16 7
6 10 3 18 5
1 12 20 15 19
3 15 0 2 22
9 18 13 17 5
19 8 7 25 23
20 11 10 24 4
14 21 16 12 6
--}
type Cell = (Int, Bool)
type BingoBoard = [[Cell]]
isWinner::BingoBoard -> Bool
isWinner arg0 = List.any (== []) $ fmap(filter t) arg0
where
t::Cell -> Bool
t (_, False) = False
t _ = True
updateBingoBoard :: Int -> BingoBoard -> BingoBoard
updateBingoBoard arg0 arg1 = fmap (map flipcell) arg1
where
flipcell ::Cell -> Cell
flipcell (a, b)
| a == arg0 = (a, True)
| otherwise = (a, b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment