Temel kurallar (benimkinden farklı)
Hikaye
Yıl 4579, insanların artık her biri 1001 parmaklı 2 eli var. Çubuklar noktalara dayalı hale geldi. @Dennis'in @Martin'den daha fazla temsilcisi var ... Elle çizilmiş kırmızı daireler şimdi indirildi ... Jon Skeet her SE sitesinde 2 trilyon tekrar vurdu ... Evet korkutucu biliyorum
Chopsticks çözülmüş bir el oyunudur. Bu yüzden bunu aşmak için onu mutasyona uğrattım. Parmak miktarını arttırdım.
Oyunun kuralları
Bunun nasıl oynandığı
Herkes 2 el ile başlar. Her elin 1001 parmağı vardır. 1 (bir) parmak kadar olan her eli başlar her taraftan. Sıranız sırasında diğer oyuncuların eline "vurabilirsiniz". Vurmak için 1 elinizi ve vurmak için 1 elinizi seçin. Artık vurulan el, ilk başta parmak sayısı ve vurduğunuz eldeki parmak miktarına sahiptir.
EX
P1: 1,1
P2: 1,1
. P1[0]
vurur P2[1]
. Şimdi parmaklar P1:1,1
P2:1,2
. Şimdi P2[1]
vurur p1[0]
. Parmaklar artık P1: 3,1
P2 1,2
.
Bir el 1001 veya daha fazla parmağa kadar çıkarsa, o el dışarı çıkar. Sonra (kendi sırası için) elini uzatmış oyuncu "bölünebilir". Bölünme, elin elini alıp parmak miktarını yarıya indirdiğinde (yuvarladığında) ve diğer eline tekrar girmesini sağlar.
EX
P1: 1000,2
P2 7,7
. P2[0]
vurur P1[0]
. Skor P1: 0,2
P2'dir 1,1
. P1[1]
sırayla böler ve skor P1: 1,1
ve P2'dir 7,7
.
Oyun, bir oyuncunun iki eli de eline geçtiğinde sona erer. Puanlar kazananın sahip olduğu parmak sayısına göre puanlanır. Daha fazla puan = daha iyi. Kaybeden puan kazanmaz.
Kullanılan başka kurallar da vardır, ancak bunlar burada kullanılanlardır.
Herkes herkesi oynuyor (robin)
Son Oyun
Kazandığınız her turda puanlarınızı toplayın. Sonra herkesin puan ortalama. Toplamınızı ortalama puanlara bölün ve nihai puanınızı alın. Çoğu puan kazanır.
Gerçek kurallar
Lütfen değil oyunu çözmeye çalışın. Aslında çalıştırabilmeliyim: P
Botun hızlı çalıştığından emin olun. Yargılama süresinin uzunluğuyla, bu biraz zaman alacak
Programınızda gereken tüm kitaplıklar varsayılan python kitaplığında olmalıdır. Ayrıca içe aktarılması gerekenleri de listeleyin. İthalat sadece temel ithalat olacaktır (matematik için yapmam: import math
)
Yanıtlar Python 3.x içinde çalışmalıdır
Handler
Botunuz bir play
fonksiyona sahip kendi Python 3 dosyası olacaktır .
play
her biri iki sayıdan oluşan iki listeden geçirilecektir. Bu sayı, her elde kaç parmak olduğunu gösterir. İlk liste sizin elinizdir.
Diğer oyuncunun eline vurmayı seçerseniz, iki bitlik bir liste döndürün. İlk bit, vurmak için kullandığınız elin dizinidir ( 0
ilk 1
için sonuncu için) ve ikinci bit ise rakibe vurduğunuz elin dizinidir.
Bölmeyi seçerseniz, diğer doğruluk değerlerini döndürün.
Tada!
Denetleyici burada bulunabilir . Her botu kendi dosyasına kaydedin ve her botun dosya adını (olmadan .py
) listeleyin botnames
.
Son not:
Siz ve diğer bot ilk önce sırayla gideceksiniz. Eğer oyun 100.000 (yüz bin) turda sona ermezse, oyun sona erer ve hiçbiri kazanmaz.
Denetleyici sonsuza dek süren hareketlere karşı korunmaz, ancak gereksiz ek yük güçlü bir şekilde kaşlarını çatacaktır.
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
Ne, yani KoTH için hesaplamalar yapan bizleriz?