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
        ()

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

Архив записей в блогах:
... Министерство финансов США опубликовало данные, согласно которым инвестиции России в американские ценные бумаги сократились до 67 миллионов долларов. Месяцем ранее этот показатель составлял 629 миллионов долларов. Проще говоря, всего за несколько недель РФ продала большую часть ...
...
Один из самых больших мифов последнего времени – «точечная застройка», точнее её абсолютный вред. Люди лично видят примеры варварской застройки в сложившейся среде своего города и делают однозначный вывод. Пункт о запрете точечной застройки давно есть в предвыборной программе каждого ...
Гете: - Странная эта штука со свободой – ее не трудно достигнуть тому, кто знает себя и умеет себя ограничивать. А на что, спрашивается, нам избыток свободы, которую мы не можем использовать? И потом добавляет: - Окиньте взглядом эту комнату и сосенднюю спаленку (именно что спаленка, ...
В этой статье из цикла «Породы древесины» сайт RMNT расскажет вам о липе. Дерево широко распространено на европейской территории, популярный материал для различных работ. Выясним, какими особенностями обладает древесина липы и в каких сферах применяется. ...