Programozó versenyek

Magas szintű programozási nyelvek 1, 2018. március 27., K16 ZH

2018. március 27. 16:05 – 2018. március 27. 17:50

Póker

A póker a legnépszerűbb és legismertebb kártyajátékok egyike. A pókerben a játékosnak az a célja, hogy a birtokában lévő kártyalapokból a lehető legjobb kombinációt kihozva elvigye az asztal közepén lévő kasszát (angolul pot-ot). A játékot francia kártyával játsszák. Az egyes kártyalapokat a színük és értékük különbözteti meg egymástól, a pakliban (elvileg) nincs két olyan lap, amelynek egyszerre egyezne meg a színe és az értéke.

A színsor eredetén sok tudós törte már a fejét, de csak a találgatásokig jutottak el. A legnagyobb valószínűsége annak az elméletnek van, amely szerint a színek háborús értelműek. A kőr (coeur) – vagyis a szív – a bátorság jelképe volt, a harcos katonát jelentette. A pikk (pique) a régi lándzsa ásószerű végződését akarta ábrázolni, a káró (carreau) pedig annak a súlyos dárdának a négyszögletes vasvége volt, amelyet a lőpor feltalálása előtt hajítógépből zúdítottak az ellenségre. Végül a treff (trefle), vagyis lóhere, arra a takarmányra utalt, amely nélkül a lovasság nem tudott háborúskodni. Tehát ha maga a kártya nem is, a színei francia eredetűek. Bár mára már ezek az egykor tényként kezelt adatok a történelem homályába merültek, talán mégis érdemes volt felidézni őket, és megtudni, hogy mi a története az „ördög bibliájának”. (Forrás: https://archivum.ujszo.com/cimkek/nagyszunet/2004/05/11/kor-pikk-treff-es-karo.)

Írjon programot, amely a standard bemenetről állományvégjelig (EOF-ig) sztringeket olvas be! A soronként beolvasott sztringek mindegyike pontosan 14 karakter hosszú, melyben 4 darab szóköz karakter választ el egymástól 5 darab kétkarakteres részsztringet. A kétkarakteres részsztringek kártyalapok színét és értékét írják le.

A kártyák színét a következő betű karakterek szimbolizálják, a mi esetünkben most a kártyák színeinek angol elnevezése alapján: C (clubs, treff), D (diamonds, káró), H (hearts, kőr) és S (spades, pikk). Az értékek a következők lehetnek: 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A.

A programjának minden beolvasott sor esetén el kell döntenie, hogy az ott megadott kártyalapok full house-t alkotnak-e. Az öt lap akkor alkot full house-t, ha közöttük három-három, illetve két-két azonos értékű lap található, ahogyan az például az alábbi ábrán is látható (itt egy tízesekből és ászokból álló full house-t látunk):

Ha az adott lapok full house-t alkotnak, akkor a programjának a „Full house” sztringet, ellenkező esetben a „Not full house” sztringet kell a kimenetre írnia.

Példa bemenet

  1. HT HJ HQ HK HA
  2. C4 C5 C6 C7 C8
  3. SK HK CK DK S3
  4. HT ST DT SA CA
  5. C8 S8 S7 D8 H8
  6. HJ DJ S4 D4 CJ
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Not full house
  2. Not full house
  3. Not full house
  4. Full house
  5. Full house
  6. Full house
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.