Programozó versenyek

Magas szintű programozási nyelvek 1, 2018. március 28., Sz14 ZH

2018. március 28. 14:15 – 2018. március 28. 16:00

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 sort alkotnak-e. Az öt lap akkor alkot sort, ha öt egymást követő értékű lapból áll, ahogyan az például az alábbi ábrán több esetben is látható (most sornak tekintjük az egyszínű lapokból álló sorozatokat, azaz a royal flush-t és a straight flush-t is):

Ha az adott lapok sort alkotnak, akkor a programjának a „Straight” szót, ellenkező esetben a „Not straight” sztringet kell a kimenetre írnia.

Példa bemenet

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

A példa bemenethez tartozó kimenet

  1. Straight
  2. Straight
  3. Straight
  4. Not straight
  5. Not straight
  6. Not straight
  7. Not straight
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.