Nənənin Kart Oyunu
Yağışlı bir gün nənənizlə mətbəx masası arxasında əyləşib onun "Camicia" adlandırdığı kart oyununu oynayırsınız. Əvvəlcə hər şey sadə görünür, lakin oyun uzandıqca qəribə bir şey baş verir: eyni kartlar yenidən dövr etməyə başlayır. Kart ardınca kart atırsınız, amma oyun heç cür bitmək bilmir. Düşünməyə başlayırsınız: Bu oyun nə vaxtsa bitəcək, yoxsa sonsuza qədər davam edə bilər?
Sonradan məlum olur ki, siz sadəcə şanssız deyilsiniz; nənənizlə birlikdə ehtimal olunan ən uzun oyun ardıcıllıqlarından birinə düşmüsünüz! Bəs belə bir oyun maksimum nə qədər davam edə bilər?
Sizin vəzifəniz bu klassik kart oyununu simulyasiya edən proqram yazmaqdır. Proqram iki oyunçunun başlanğıc kart dəstələrini qəbul etməli və oyunun necə bitdiyini (və ya sonsuz dövrə girdiyini) müəyyən etməlidir.
Oyunun Qaydaları:
Kart dəstəsi iki oyunçu arasında bölünür. Oyunçunun kartları soldan sağa doğru oxunur (ən soldakı kart dəstənin ən üstündəki kartdır).
Bir raund hər iki oyunçunun mərkəzə ən azı bir kart atması ilə baş verir. Oyunçular növbə ilə dəstələrinin ən üstündəki kartı mərkəzdəki yığına atırlar.
Əgər atılan kart rəqəm kartıdırsa (2-10), növbə sadəcə digər oyunçuya keçir.
Əgər atılan kart cəza (ödəniş) kartıdırsa, rəqib oyunçu mərkəzə müəyyən sayda cəza kartı atmalıdır:
J (Valet): Rəqib 1 kart atmalıdır.
Q (Qadın): Rəqib 2 kart atmalıdır.
K (Kral): Rəqib 3 kart atmalıdır.
A (Tuz): Rəqib 4 kart atmalıdır.
Əgər cəza ödəyən oyunçu öz cəza atışları zamanı başqa bir cəza kartı çıxararsa, o, cəza ödəməyi dərhal dayandırır. Bu dəfə növbə digər oyunçuya keçir və o, yeni çıxan cəza kartına əsasən cəza ödəməyə başlamalıdır.
Əgər cəza heç bir kəsinti olmadan (yeni cəza kartı çıxmadan) tam ödənilərsə, sonuncu cəza kartını atan oyunçu mərkəzdəki bütün yığını götürür və öz dəstəsinin ən altına yığır. Növbəti raundu da məhz bu oyunçu başladır. (Mərkəzdəki yığını götürmə anı "trick" adlanır).
Əgər oyunçunun kartları bitərsə və o, kart atmalıdırsa (istər öz növbəsində, istərsə də cəza ödəyərkən), digər oyunçu mərkəzdəki yığını götürür və oyun bitir. Bütün kartları toplayan oyunçu qalib gəlir.
Sonsuz Dövr (Loop) Qaydası: Əgər oyunçuların əllərindəki kartların vəziyyəti əvvəlki hər hansı bir raunddakı vəziyyətlə tamamilə eyni olarsa, oyun sonsuz dövrə (loop) girir.
Vacib Qeyd: Vəziyyətləri müqayisə edərkən rəqəm kartlarının dəyəri nəzərə alınmır! Yəni J 2 3 ilə J 4 5 tamamilə eyni vəziyyət hesab olunur (çünki hər ikisində J-dən sonra iki ədəd rəqəm kartı gəlir).
Giriş verilənləri: Birinci sətirdə A oyunçusunun başlanğıc kartları (aralarında boşluq olmaqla) verilir. İkinci sətirdə B oyunçusunun başlanğıc kartları (aralarında boşluq olmaqla) verilir. Kartlar 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A simvollarından ibarətdir.
Çıxış verilənləri: Oyunun nəticəsini üç sətirdə çap edin:
Oyunun statusu:
"finished"(oyun bitdisə) və ya"loop"(sonsuz dövrə girdisə).Oynanılan ümumi kartların sayı (hər dəfə mərkəzə kart atıldıqda 1 artır).
"Trick" sayı (mərkəzdəki yığının oyunçular tərəfindən götürülmə sayı).