Pazaak , Star Wars evreninden bir kart oyunudur. BlackJack'e benzer, iki oyuncu birbirlerine karşı yığılmadan toplam yirmiye ulaşmaya çalışıyor. Her oyuncunun kendi skor kartını değiştirmek için kullanabileceği dört karttan oluşan bir "yan destesi" vardır.
Liderler Sıralaması
17.06.2015 itibarıyla @ 16:40 EDT
Düzenleme: Neptor hile için diskalifiye edilmiştir. Puanlar mümkün olan en kısa sürede düzeltilecektir ...
- NEPTR: ~ 424.000
- Cincinnati Kid: ~ 422.000
- Nestor: ~ 408.000
- Austin Powers: ~ 405.000
- Bastila: ~ 248.000
- Aptal Temkinli Oyuncu: ~ 107.000
- Salak Cesur Oyuncu: ~ 87.000
Sahte Pazaak Kupası Elemeleri
En kısa zamanda güncellenecektir.
Round One - Nestor vs Bastila ve Austin Powers vs The Cincinnati Kid
İkinci Tur - Nestor vs Austin Powers ve The Cincinnati Kid vs Bastila
mekanik
Oynanış sırayla yapılır. Birinci oyuncu ana (ev) desteden bir kart alır. Ev destesinde kırk kart bulunur: bir ila 10 arasında dört kopya. Bir kart dağıtıldıktan sonra, sıralarını bitirmeyi ve bir sonraki turda yeni bir kart almayı, mevcut değerlerinde durmayı veya yan desteden bir kart oynamayı seçebilirler ve yeni değerde durmak. Birinci oyuncu ne yapmak istediklerine karar verdikten sonra, ikinci oyuncu işlemi tekrarlar.
Her iki oyuncu da gittiğinde, eller değerlendirilir. Eğer bir oyuncu bombalanırsa (yirminin üzerine çıkarsa), diğer oyuncu da bombalamaması koşuluyla kazanır. Bir oyuncu durmayı seçerse ve diğer oyuncu daha yüksek bir el değerine sahipse, diğer oyuncu kazanır. Her iki oyuncu da durmayı seçerse, daha yüksek el değerine sahip oyuncu kazanır. Beraberlik durumunda, iki oyuncu da kazanamaz.
Kazanan bir koşulun karşılanmadığı takdirde oyun tekrarlanacaktır. Bir oyuncu sırasını bitirmeyi seçerse, yeni bir kart alır ve yeni bir seçim yapabilir. Ayakta kalmayı seçtiler veya yan destelerinden bir kart oynadılarsa, yeni bir kart dağıtılmazlar ve yeni bir eylem seçemezler.
Bir oyuncu oyunu kazanana kadar oyun böyle devam eder. Oyunlar beşten en iyi üçte oynanır.
Neden "Basit" Pazaak?
Yıldız Savaşları evreninde Pazaak kumar oynamıştır. Böyle bir sistemin dahil edilmesi oyuna daha fazla dinamik katacaktır, ancak ilk kez KoTH yarışması için biraz karmaşıktır.
"Gerçek" Pazaak yan desteleri de oyuncular tarafından sağlandı ve negatif kartlar, pozitif veya negatif kartlar, flip kartlar, çift kartlar ve tiebreak kartlar gibi birçok farklı kart seçeneği içerebilir. Bunlar ayrıca oyunu daha ilginç hale getirecek, ancak yerinde bir kumar arayüzü gerektirecek ve rakiplerden çok daha fazlasını gerektirecektir. Bu Basit Pazaak oyununda, her oyuncu aynı yan güverteye sahip olur: bir ila beş arasında iki kopya, dördü rastgele seçilir.
Bu oyunun başarısına bağlı olarak, hangi kumar ve özel yan destelerin mümkün olduğu gelişmiş bir versiyon geliştirmek için çaba gösterebilirim.
Oyuncular
Bu oyunun oyuncuları sizin tarafınızdan tasarlanan botlar olacak. Her bot Player sınıfını genişletmeli, Mekanik paketini içe aktarmalı ve oyuncular paketinde şöyle olmalıdır:
package Players;
import java.util.Collection;
import Mechanics.*;
public class DemoPlayer extends Player {
public DemoPlayer() {
name = "Your Name Here";
}
public void getResponse(int wins[], boolean isPlayerOne,
Collection<Card> yourHand, Collection<Card> opponentHand,
Collection<Card> yourSideDeck, int opponentSideDeckCount,
Action opponentAction, boolean opponentDidPlay) {
action = null;
cardToPlay = null;
}
}
Her turda kontrolör, botunuz daha önce durmak istediğini belirtmedikçe, botunuz için getResponse yöntemini çağırır. GetResponse yöntemi iki özellik ayarlayabilir: bir eylem ve oynatılacak kart. Eylem aşağıdakilerden biri olabilir:
- END: Turu bitirir ve bir sonraki turda yeni bir kart çeker.
- STAND: Geçerli el değerinde kalır. Kart çekmez.
- OYNAT: Yan desteden bir kart oynatır ve sonra durur.
Oynanacak olan kart, sadece eylemi OYNAT olarak ayarladıysanız çok önemlidir. Bir Card nesnesi alır. Geçtiğiniz Kart nesnesi yan destenizde yoksa, botunuz bunun yerine STAND olacaktır.
Botunuzun her turda aldığı parametreler:
- Her oyuncunun kazançlarını içeren bir dizi. kazanç [0], oyuncu 1'ler olan kazanır 1 Oyuncu 2 en (int [])
- Botunuzun oyuncu bir olup olmadığı (boolean)
- Size dağıtılan kartlardan oluşan bir koleksiyon (Koleksiyon)
- Rakibinize dağıtılan kartların bir koleksiyonu (Koleksiyon)
- Yan destenizdeki kartların koleksiyonu (Koleksiyon)
- Rakibinizin yan güvertesinde kalan kart sayısı (int)
- Rakibinizin son yaptığı işlem (Eylem) [Not: Bu SON veya STAND olacaktır, asla OYNAMAZ]
- Rakibinizin bir kart oynayıp oynamaması (boolean)
Bot Kuralları
Botlarınız sadece kendilerine verilen bilgileri getResponse yöntemiyle kullanabilir. Başka bir sınıfla etkileşime girmemelidirler. Turlar arasında veri depolamak için tek bir dosyaya yazabilirler. İstendiği gibi özel yöntemlere, özelliklere vb. Sahip olabilirler. Makul bir sürede çalışmalıdırlar (eğer program çalışması pratik olarak anlık değilse, bir şeyin yanlış olduğunu fark edeceğim).
Kodda bir tür istismar bulursanız, "kendinizi teslim etmeniz" için ödüllendirileceksiniz. İlk olarak istismarın farkına varırsam, onu düzeltirim ve ödül almayacaksın.
Demos
Denetleyicinin bir bot yazmasına gerek yoktur, çünkü bu yazıda her şey zaten açıklanmıştır. Ancak, test etmek isterseniz, burada bulabilirsiniz: https://github.com/PhantomJedi759/simplepazaak İki temel bot dahildir. İkisi de sadece "END" ve STAND arasında seçim yaptıkları için "zeki" bir rakibe karşı iyi dayanmamalıdır. İşte yaptıklarının örnek bir çalışması:
New Game!
The standings are 0 to 0
Dumb Bold Player's Hand: []
Dumb Bold Player's new Hand: [2]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: []
Dumb Cautious Player's new Hand: [8]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2]
Dumb Bold Player's new Hand: [2, 8]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8]
Dumb Cautious Player's new Hand: [8, 3]
Dumb Cautious Player has chosen to END
Dumb Bold Player's Hand: [2, 8]
Dumb Bold Player's new Hand: [2, 8, 7]
Dumb Bold Player has chosen to END
Dumb Cautious Player's Hand: [8, 3]
Dumb Cautious Player's new Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player's Hand: [2, 8, 7]
Dumb Bold Player's new Hand: [2, 8, 7, 6]
Dumb Bold Player has chosen to STAND
Dumb Cautious Player's Hand: [8, 3, 6]
Dumb Cautious Player has chosen to STAND
Dumb Bold Player has bombed out! Dumb Cautious Player wins!
Bu botlar sadece çekilişin şansına bağlı olduğu için, kazanma-kayıp oranları büyük ölçüde değişebilir. Becerinin oyunun şansıyla nasıl mücadele edebileceğini görmek ilginç olacak.
Bu ihtiyacınız olan her şey olmalı! Git ve botlar yap!
Kurallara Açıklama
Ana güverte kırk karttır: 4x1-10 Her elin başında yeniden karıştırılır.
Bir oyuncunun yan destesinde rastgele 2x1-5 arasından seçilen dört kart bulunur. Yan güverte eller arasında kalıyor.
Eller, en iyi beşte üçü için oyunlarda oynanır. Botlar, kazanılan toplam oyun sayısına ve daha sonra toplam el sayısına göre puanlanır.
Eşleştirme ele alınır, böylece her oyuncu diğer oyunculara karşı 100.000 oyun oynamak zorunda kalır.
Pazaak Kupası'nda eleme tarzı turlar, en iyi Pazaak botunun kim olduğunu daraltacak. Her bot eşleştirmesi, en iyi 100.000 oyundan yedi tanesinden en iyi dördünü oynayacak. Kim dört galibiyet alırsa merdivenden bir sonraki rakibe yükselir ve kaybedenler sıralı sıralama için savaşmaya devam eder. Bu oyun tarzı en adil olanıdır, çünkü botlar bazı rakipleri diğerlerine karşı yetenek eksikliğini telafi etmek için "kazanamaz". Pazaak Kupası, gönderilen en az sekiz bot olması kaydıyla 3 Temmuz Cuma günü yapılacaktır. Kazanan, Pazaak Kupası düzenlendiği zamana yakın bir zamanda hazır olacağı Gelişmiş Pazaak'ta Doğru Yanıt statüsü ve bir başlangıç bonusu alacak.