Cheat, elinden kurtulmaya çalıştığın bir kart oyunudur. Bir dönüş kabaca şöyle görünür:
- Bu turda hangi kart sırasını oynamanız gerektiğini belirleyin. Çoğu varyantta bu, önceki dönüşten bir derece daha yüksektir.
- 1-4 kart, kapalı olarak oynayın. Bunların geçerli sıralamayla eşleşmesi gerekmez. Eğer yapmazlarsa, bir hile olarak kabul edilir . Bu noktada herhangi bir oyuncu size meydan okuyabilir .
- Kimse size meydan okumazsa, oyun bir sonraki oyuncuya devam eder.
- Birisi size meydan okursa ve hile yapmazsanız, oynanan tüm kartları almaları gerekir.
- Birisi size meydan okursa ve hile yaptıysanız, oynanan tüm kartları almanız gerekir.
Strateji çoğunlukla blöf ve kart sayımının bir karışımıdır. Yine de matematikte kötüyüm, bu yüzden Cheat'ta hile yapacağım ve yanımda bir bot getireceğim.
Giriş
Giriş istediğiniz sırayla veya biçimde olacaktır:
- Oyuncunun eli. Kartlarının olması gerektiğini biliyorsam (örneğin, onları aldıklarını gördüm), bunlar artan sırada listelenir. Bilinmeyenler daha sonra olarak listelenecektir
?
. Örneğin, altı kartları varsa ve ikisinin 1 ve birinin 4 olduğunu biliyorum, elin geçerli bir temsilidir114???
. ? 'ler her zaman bilinen kartlardan sonra listelenir.141???
ve11???4
her ikisi de geçersiz girişlerdir ve kodunuzun bunları işlemesi gerekmez. - Kesinlikle bildiğim kartlar ellerinin bir parçası değil (Onları aldım, başkasının onları aldığını gördüm, vb.). Liste artan sırada olacak. Liste boş olabilir.
- Oyuncunun oynadığı iddia edilen kartlar. 3 7'leri oynadıklarını iddia etselerdi, burada olası bir girdi olurdu
777
. Kartlar her zaman aynı sıralamada olacaktır.
Oynanan kartların sayısı her zaman 1-4 ve dereceleri her zaman 0-9 olacaktır. Bir rütbe asla ellerinde dört kezden fazla görünmez + ellerinde görünmez.
Bu, geçerli bir giriş örneğidir:
33577??
01555688
55
Bu, geçersiz bir örnek girişidir:
35377?? # Out of order
7779 # Five 7's in total
23 # Two separate ranks played
Çıktı
Kesinlikle meydan okumalıysak gerçek bir değer . Eğer meydan okumak istemezsek bir falsey değeri.
Aldattığını bildiğimizde her zaman meydan okuyoruz. Muhtemelen sahip olamayacakları kartları oynadıkları takdirde hile yaptıklarını biliyoruz:
12
3 # They don't have any 3's or ?'s
-------------
12?
33 # Fewer ?'s than played cards
-------------
123?
333
33 # Since we have three 3's they can't have two
Karşılaştığımız diğer zaman ise son kartlarını oynaması. Oyunun yasal olmasına rağmen oyunu bitirir, böylece meydan okuyabiliriz.
1
1 # They'd win, so challenge anyway
Diğer Test Durumları
Gerçek (meydan okumalı )
11445678?
22
-------------
????????
4
4444
-------------
12345678
9
Falsey (meydan okumamalı )
1?
222
2
-------------
12?
22
22
-------------
?????
1111
puanlama
En kısa kod kazanır.