Uyarı: Bu tepenin kralı mücadelesi tamamlandı. Bu, C5H8NNaO4'e Gözlemcinin girdiği için verilmiş olan yeşil onay işaretinin herhangi bir yeni cevaba taşınmayacağı anlamına gelir.
Hala yeni girişler gönderebilirsiniz, ancak aktif olarak yeni girişleri kontrol etmediğim için devam eden yeni turnuvalarda gecikmeler olabilir.
Giriş
Bu meydan okumada, Ultimate Samuray Showdown Ultimate Edition Özel Sürüm 2.0 X Alpha Omega Turbo (ya da kısaca sadece Ultimate Samurai Showdown ) adlı bir arcade oyunu oynuyorsunuz . Rakipleriniz? Programming Puzzles & Code Golf'ün diğer üyelerinden başkası değil!
Bir PPCG arcade oyunundan bekleyebileceğiniz gibi, doğrudan Ultimate Samurai Showdown oynamıyorsunuz , bunun yerine oyunu sizin için oynayacak bir program yazıyorsunuz. Bu program, diğer kullanıcılar tarafından bire bir düelloda sunulan programlarla mücadele edecektir. En yetenekli program PPCG'nin Ultimate Samuray'ı ile taçlandırılacak ve efsane yeşil kene verilecek.
Oyun açıklaması
Bu bölüm oyunun arkasındaki mekaniği anlatıyor.
Zafer durumu
Bir kibrit birbirine karşı karşıya iki samuray oluşur . Her samuray, her maça 20 vuruş puanı ve 1 şeref ile başlar . Bir samuray, rakibi ölürse ve o hala yaşıyorsa kazanır. Bir samurayın ölebileceği iki yöntem vardır:
- Bir samurayın vuruş puanları 0'a düşürülürse ölür.
- Bir samuray şereflerini 0'ın altına getirirse, tanrıların düelloda ahlaksız davrandıkları için vurulacak.
Tanrılar tarafından vurulmak, isabet puanlarının 0'a düşürülmesine göre daha yüksek önceliğe sahip olduğundan, bir samurayın 0 sağlık puanında, diğeri -1 onurda olduğu bir durumda, 0 sağlık puanına sahip samuray kazanacak. Her iki samurayın da -1 onurlu olduğu bir durumda, ikisi de tanrılar tarafından vuruluyor ve oyun berabere.
500 dönüşe kadar olan bir maç . 500 dönüşün tamamı geçerse ve karşılaşmaya karar verilmezse (hiçbiri samuray ölmedi), tanrılar sıkılır ve her iki samurayı da vurur ve böylece berabere sonuçlanır.
Eylemler
Her dönüşte samuray aşağıdaki işlemlerden birini yapmalıdır:
W
Samuraylar bekleyecek ve hiçbir eylemde bulunmayacak. Bu onun havalı görünmesini sağlar ancak rakibini yenmesine yardımcı olmaz. Bu aynı zamanda varsayılan eylemdir.
B
Samuray, rakibine şerefli bir şekilde boyun eğecektir. Bu tanrıları memnun eder ve böylece samuraylar 1 Onur kazanır. Onur, samurayınızın başarısı için hayati öneme sahiptir çünkü Onur esas olarak bu oyun için "kaynak" dır - hepsi onurdan ayrılır B
ve W
Onur'u azaltabilir. Ayrıca, bir samuray 7 Şeref veya daha fazla kazanırsa , Tanrıların Kılıcını kullanmasına izin verilir . Bunun sonuçları aşağıda açıklanmıştır.
Ancak, rakibiniz size kılıcıyla vurmaya karar verirse, rakibinize boyun eğmeniz sizi serbest bırakır, bu yüzden eğmeyi seçerken dikkatli olun.
G
Samuraylar savunma pozisyonuna girecek ve herhangi bir kılıç saldırısına karşı korunacaklardır. Bu hamle, tüm kılıç grevlerini, Tanrıların Kılıcı ile yapılmış olanları bile başarıyla engelleyecektir .
Bu hamle 1 Honor tüketir böylece Ancak, tanrılar, aşırı defansif samuray üzerine kaşlarını eğer bir önceki dönüşte samurayýn eylem aynı zamanda koruyordu. Aksi takdirde Onur tüketmez.
I
Samuray, kılıcını kınından hızla çekerek rakibine vurmaya çalışır. Samuray 7 veya daha fazla onere sahipse , normal kılıcı yerine Tanrıların Kılıcını kullanır. Bu hamle 1 Onur harcıyor.
Çabuk beraberlik, havai saldırıların daha yavaş geçmesine neden olacak hızlı bir grev olmasına rağmen parislere karşı kaybedecek. Grev başarıyla bağlanırsa , Tanrıların Kılıcı ile 1 veya 2 hasar verir .
P
Samuray, gelen herhangi bir saldırıyı kesmeye çalışıp kendi saldırısını başlatmaya çalışacak. Samuray 7 veya daha fazla onere sahipse , normal kılıcı yerine Tanrıların Kılıcını kullanır. Bu hamle 1 Onur harcıyor.
Parry, hızlı grevlere karşı iyi bir manevra, ancak daha yavaş havai saldırıların etkisiyle güçlenecek. Grev başarıyla bağlanırsa , Tanrıların Kılıcı ile 1 veya 2 hasar verir .
O
Samuray, rakibine daha yavaş bir hücum saldırısı yaparak vurmaya çalışacak. Eğer samurayın 7 onuru veya üstü varsa, normal kılıcı yerine Tanrıların kılıcını kullanır. Bu hamle 1 şeref tüketir.
Genel gider grev, parlamentoları alt edebilir, ancak hızlı grevlere karşı kaybedecek. Grev başarıyla bağlanırsa , Tanrıların Kılıcı ile 1 veya 2 hasar verir .
Tanrıların Kılıcı
Şerefine 7 veya daha fazla olan bir samuray , Tanrıların Kılıcını kullanma becerisini kazanır . Şerefinin 7'nin altına düşmesi durumunda, Tanrıların Kılıcını kullanma yeteneği ondan iptal edilecektir. Tanrıların Kılıç 2 hasar yerine 1 ilgilenir.
Tanrıların Kılıç grev normalde yenmek olmaz bir kılıç grev yenmek için izin vermez. Örneğin , Tanrılar Kılıcı parry'leri hala genel bir genel grevde kaybedecek ve Tanrılar Kılıcı hızlı çekilişi sıradan bir hızlı çekilişi baskılayamayacak. Gerçekten, sözde Tanrıların Kılıcı aslında o kadar da güçlü değil - belki de tanrılar tarafından oynanan kozmik bir şakadır ...
Etkileşim Tablosu
Aşağıdaki Yığın Parçacığı, iki samurayın alabileceği farklı eylem kombinasyonlarının tüm olası sonuçlarını açıkça listeleyen bir tablo içerir. Görmek için "Kod Parçasını Göster" i tıklayın, ardından "Kod Parçasını Çalıştır" ı tıklayın.
Program İletişimi
Turnuvanın yürütülmesini kolaylaştırmak için, “tanrıların” rolünü üstlenecek bir kontrol programı yazılmıştır - onur ve sağlık kayıtlarını tutar ve buna göre samuray gülümser. Bu bölümde, programınızın denetleyici programıyla nasıl iletişim kuracağı açıklanmaktadır.
Giriş açıklaması
Kontrolör programı, programınızı aşağıdaki gibi komut satırından arayacaktır:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
nerede:
<command>
programını çalıştırmak için gereken komuttur. Örneğin, programınız birsuper_sentai.pl
dosyadaysa, muhtemelen komutturperl super_sentai.pl
.<history>
Yaptığınız hamlelerin tarihidir. Örneğin,WWBP
iki kez beklediğiniz, bir kez eğildiği ve bir kez daha parladığınız anlamına gelir.<enemy_history>
Düşmanınızın yaptığı hamlelerin tarihidir. Mesela,BBBI
düşmanın üç kez eğildiği ve hızlı bir şekilde çekildiği anlamına gelir.<your_health>
şu anki sağlığınız.<enemy_health>
düşmanın mevcut sağlığıdır.<your_honour>
şuanki şerefin.<enemy_honour>
düşmanın şu anki onuru.
İlk turda, boş olacak history
ve enemy_history
böylece programınız şu son dört argümanla çağrılacak:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
Lütfen bunun için hazır olun!
Zeki okuyucular, her iki samurayın onurunu ve sağlığını sağlayan dört argümanın bir dereceye kadar gereksiz olduğunu fark edebilir; Bu mükemmel bir bilgi oyunu olduğu için, samurayların şeref ve sağlığı sadece tarihçeleri kullanarak belirlenebilir.
Bu değerler kolaylık sağlamak için sağlanmıştır, böylece geçmiş argümanlarını ayrıştırmanıza gerek kalmaz. Bu, Sayın Hakim 0 olduğunda, saldırmamak gibi basit stratejiler uygulamak için faydalı olduğunu kanıtlamalıdır.
Çıkış açıklaması
Bir eylemi seçmek için, programı çıktılayacaktır biri W
, B
, G
, I
, P
, veya O
yapmak istediğiniz eylemi bağlı olarak standart çıkışa. Programınız 1000ms içinde herhangi bir şey çıkarmazsa, program sonlandırılır ve programınız çıktı olarak kabul edilir W
.
Programınız birden fazla harf çıkarsa, yalnızca ilk harf dikkate alınacaktır - bu yüzden çıktı Parry
, çıktı ile aynı olacaktır P
.
Programınızın ilk harfinin çıktısı yukarıda listelenen seçeneklerden herhangi biri değilse, varsayılan olarak olacaktır W
.
Gönderme Biçimi
Bir programı bu yazıya cevap olarak gönderin. Birden fazla program gönderebilirsiniz. Birden fazla basit program gönderiyorsanız, bunları tek bir cevap olarak göndermenizi öneririm; Birden fazla karmaşık program gönderiyorsanız, bunları ayrı yanıtlar olarak göndermenizi öneririm. Programlarınızı başarılı bir şekilde turnuvaya ekledikten sonra, girişinizle birlikte git deposuna bir taahhütte bulunacağım (aşağıda bağlantılı).
Programınızın turnuvaya eklenmesini engelleyen sorunlarla karşılaşırsam, girişinizle ilgili sorunu belirten bir yorum bırakacağım.
Lütfen gönderiminize aşağıdakileri ekleyin:
- Skor tabelasında kullanmak için programınızın okunabilir ismi. Burada boşluklara izin verilir; virgül ve Unicode karakterler değildir.
- Programınızın yazıldığı dil. Lütfen TinyMUSH gibi dillere erişmek için garip, zor erişimden kaçının.
- Programınızın kısa bir özeti. Bu, programın nasıl çalıştığının bir açıklaması veya programınızla ilgili bazı lezzet metinlerinin (tümü gizli olmak istiyorsanız) veya belki her ikisinin de açıklaması olabilir.
- Programınızı çalıştırmak için gereken komut. Örneğin, gönderdiğiniz gönderimi Java ile yazıyorsanız,
example.java
derleme yönergeleri vejavac example.java
çalıştırma yönergeleri sağlarsınızjava example
. - Programın kaynak kodu.
Gönderme işlemine yardımcı olmak için burada bulunabilecek bir gönderim şablonu sunuyorum . Şablon, gönderilerin daha iyi görünmesini sağlar. Kullanmayı şiddetle tavsiye ediyorum.
Ayrıca iki örnek giriş veriyorum. Her ne kadar örnek girişler tur robinine katılacak olsalar da, asıl amacı, Ultimate Samuray unvanı için ciddi bir yarışmacı olmak yerine, turnuva için başvuru ve giriş / çıkış formatlarını netleştirmektir.
Turnuva Yapısı
Bu bölümde katılımcılar arasındaki turnuvanın nasıl yürütüleceği açıklanmaktadır.
Kontrol programı
Kontrol programı Python 2 ile yazılmıştır ve Ultimate Samurai Showdown Github deposunda bulunabilir . Kendiniz çalıştırmak isterseniz, nasıl çalıştırılacağına ilişkin talimatlar linkteki README.md dosyasına dahil edilmiştir. Ancak, yalnızca bilgisayarımda yürütülen turnuvalar, turnuva sonuçlarını etkileyen donanım farklılıklarından kaçınmak için resmi olacak.
Kontrol programı, Arch Linux çalıştıran bir dizüstü bilgisayarda çalışacak. Intel Core i7 işlemciye ve 8GB RAM'e sahip. Bilgisayarımdaki tüm girişlerin çalışmasını sağlamak için çaba göstereceğim, ancak serbestçe erişilemeyen dillerden kaçınırsanız (parasız bir ücrette olduğu gibi) çok takdir ediyorum.
Skor sistemi
Puanlama sistemi yuvarlak bir robindir. Her program diğer programlara karşı sekiz maç oynayacaktır. Kazanma, programa 1 puan kazandırır, puan kaybetmez ve 0,5 puan kazanır. En yüksek puana sahip olan program oyunu kazanır. Bir beraberlik olursa, kazananı belirlemek için en iyi iki programı birbirine karşı düelloya çekeceğim.
Çok fazla sayıda katılımcı olması durumunda, her bir programın birbirini izleyeceği oyun sayısı 8'den düşebilir. Bu olursa buraya bir not ekleyeceğim.
Yeni başvuruların yayınlanmasıyla tur robinini birçok kez çalıştıracağım, ancak bu sayılacak en son tur robin.
diskalifiyeler
Programınızın turnuvadan diskalifiye edilmesi mümkündür. Diskalifiye şu durumlarda ortaya çıkabilir:
- Programınız derlenmiyor veya çalışmıyor;
- Programınız başka bir programın stratejik bir kopyasıdır (başka bir programla aynı stratejiyi uygular);
- Programınız denetleyici kodunu, diğer program kodunu vb. Değiştirerek diğer programları sabote etmeye çalışır;
- Programınız denetleyici kodundaki bir hatayı kullanmaya çalışıyor. Hatalardan yararlanmak yerine git deposundaki bir konuyu açmalı, burada bir yorum yapmalı veya sohbet etmem gerekiyor.
Geçmiş Sonuçlar
Tüm turnuvaların detaylı sonuçları wiki sayfasında yayınlanmaktadır .
En son turnuva 2015-07-17 07:20 tarihinde tamamlandı. İşte sonuçların bir özeti:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0