ProjectEuler.net problem 54. Покер.

топ 100 блогов yantayga06.03.2011 Я сам человек не азартный, и в карты последний раз играл довольно давно, лет 15 назад, да и то, не в покер, а в преферанс. В общем, не по душе была мне эта задачка, посему и код получился немного уродлив. Желающие раскритиковать - всегда пожалуйста. :)

module where

DataList
DataOrd
DebugTrace

Val C2 C3 C4 C5 C6 C7 C8 C9 CT J Q K A (, , , , )

Suit H C S D (, , , , )

Card Card val Valsuit Suitderiving EqOrdShowvals map suits map allEqual = allEqual ccs= (ccs

[] True
(:) True
(::) succ == && (:)

cs maximum vals )

[] (, )
cs maximumBy comparing ) isRoyalFlush = cs [, , , , ] isFlush isStraightFlush = cs isFlush nthSameVal n map \-> xcs x) filter \-> x n allEqual vals )$ cs

cs maxByFst nthSameVal 4

cs ((, ) (, $ $ rest )$ $ cs isFlush = (csisStraight = (csisThreeOfAKind = $ cs isTwoPair = \xrest-> xmaxByFst nthSameVal 2) maxByFst nthSameVal 2

cs maxByFst nthSameVal 2

Rank N1 Val| Val Val| Val [] N3 [] St Val| [] FH Val FOC | Val RF 
            
            (, , )

cs
  isRoyalFlush = | cs SF maximum rvals | foc FOC extractHeadVal foc
  nnf && fh FH extractHeadVal fh(snd )
  isFlush = $ cs
  isStraight = $ cs
  nnf = (fst ) rvals snd )
  nnf && n22' N22 extractHeadVal n22(fst ) rvals snd )
  nnf = (fst ) rvals snd )
  otherwise N1 rvals where 
    f = $ $ cs'
    cs reverse sort vals nnf = $ $ x
    x not null snd foc isFourOfAKind fh isFullHouse n3 isThreeOfAKind n22 isTwoPair n22' snd n2 isOnePair readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readVal = readSuit = readSuit = readSuit = readSuit = readCard s1s2[]= (s1(s2readLine = rank , g2where 
    = s
    = $ readCard take ws
    = $ readCard drop ws
    
:: ()
= l readFile 
        let = l
        r map ls
        print length filter $ (()r
        ()

Оставить комментарий

Архив записей в блогах:
Где, я вас спрашиваю, обещаные дожди? Лён лупоглазый. Небось вечером снова поливать тащиться. Посадила астильбу розовинькую и книфофию низкорослую, жёлтенькую. Вечером в планах ...
Вроде бы она все-таки вышла. Можно потихоньку искать в магазинах... и покупать, конечно же ;) В общем, если увидите такую обложку... ...БЕРИТЕ! ЗЫ Мои друзья уже размещали обложку у себя, за что им еще раз огромное спасибо. Но и сейчас я, естественно, ...
Бостонцы легко победили Кливленд во втором матче серии и выполнили задачу на первый выезд - вернуться хотя бы c одной победой. ...
Посмотрите эти 2 ролика, где Владимир Познер говорит о блогерах и схожести их деятельности с журналисткой. Первый из роликов записан 5 лет назад и называется "о блогерах", второе видео опубликовано полторы недели назад и называется "о журналистах". Видео, записанное спустя 5 лет, короч ...
Достала посуду из посудомойки на стол. Среди посуды был многоразовый пластиковый стакан для кофе из Галамарта. Обычно я его вручную мою, а тут сунула в посудомойку. Надеваю крышку на стакан и понимаю, что что-то не так, раз глаз зацепился. Присматриваюсь "Так, стоп, почему крышка по ...