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

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

Архив записей в блогах:
Разъяренный медик избил пациента до смерти прямо на глазах коллег В российском Белгороде в приемном отделении больницы №2 врач до смерти избил пациента и нанес несколько ударов сопровождавшему пациента мужчине. Видео предоставил телеканалу "360" свидетель преступления. В видео ...
По поводу событий в Сагре я писал, «Наверняка половина кавказских бандитов с ментовскими и чекистскими ксивами». Понятно, что у карателей были ментовские и чекистские корочки. Кто ещё сможет разъезжать колоннами авто с помповыми ...
Иногда почудится что-то, полезешь в этимологические словари – правда ли, так ли на самом деле? И так, вроде, и не так... Все мы знаем, что великая река Дунай, стекая с немецких гор Шварцвальд, резво течет на восток, впадая в Чëрное море, слегка отклоняясь на юг. На востоке у этой великой ...
На сайте, аффилированном с митр. Александром Драбинко, появилась статья о жизненных зигзагах митрополита Ионафана Елецких. Читать можно тут: https://www.facebook.com/permalink.php?story_fbid=1151344708252368&id=100001305490758 http://www.portal-credo.ru/site/?act=news&id=123387 В ...
фото сделано в Таиланде ...