Pazaakは、Star Warsユニバースのカードゲームです。BlackJackに似ており、2人のプレイヤーが互いにピットインして、合計20に到達しようとします。各プレイヤーには、スコアを変更するために使用できる4枚の「サイドデッキ」があります。
リーダーボード
2015年6月17日@ 16:40 EDT現在
編集:ネプターは不正行為で失格となりました。スコアはできるだけ早く修正されます...
- NEPTR:〜424,000
- シンシナティキッド:〜422,000
- ネストール:〜408,000
- オースティンパワーズ:〜405,000
- バスティーラ:〜248,000
- ダム・コーシャス・プレイヤー:〜107,000
- ダムボールドプレイヤー:〜87,000
モックパザークカッププレーオフ
できるだけ早く更新されます。
ラウンド1-ネストルvsバスティラ&オースティンパワーズvsシンシナティキッド
ラウンド2-ネストルvsオースティンパワーズ&シンシナティキッドvsバスティラ
力学
ゲームプレイは順番に行われます。プレイヤー1には、メイン(ハウス)デッキからカードが配られます。ハウスデッキには40枚のカードがあります。1枚から10枚までの4枚のカードです。新しい価値に立ち向かう。プレイヤー1がやりたいことを決定した後、プレイヤー2はプロセスを繰り返します。
両方のプレイヤーがいなくなると、ハンドが評価されます。プレイヤーが爆撃した場合(20人以上になった場合)、爆撃しなかった場合、他のプレイヤーが勝ちます。プレーヤーが立つことを選択し、他のプレーヤーがより高いハンドバリューを持っている場合、他のプレーヤーが勝ちます。両方のプレイヤーがスタンドを選択した場合、より高いハンドバリューを持つプレイヤーが勝ちます。同点の場合、どちらのプレイヤーも勝ちません。
勝利条件が満たされない場合、プレイは繰り返されます。プレイヤーがターンを終了することを選択した場合、彼らは新しいカードを受け取り、新しい選択をすることができます。彼らが立つことを選択した場合、またはサイドデッキからカードをプレイした場合、新しいカードは配られず、新しいアクションを選択できません。
1人のプレイヤーがゲームに勝つまで、プレイはこのように続きます。ゲームは、ベスト3のうち5セットでプレイされます。
なぜ「シンプルな」Pazaakですか?
スターウォーズの世界では、Pazaakはギャンブルに関与していました。このようなシステムを含めると、ゲームにダイナミックさが増しますが、初めてのKoTH競技では少し複雑になります。
「本物の」Pazaakサイドデッキもプレイヤー自身によって提供され、ネガティブカード、ポジティブまたはネガティブカード、フリップカード、ダブルカード、タイブレーカーカードなど、さまざまなカードオプションを含めることができます。これらはまた、ゲームをより面白くしますが、適切なギャンブルインターフェイスを必要とし、競合他社よりもはるかに多くを必要とします。このシンプルなPazaakゲームでは、各プレイヤーは同じサイドデッキを取得します。1から5までの2つのコピーから、4つがランダムに選択されます。
このゲームの成功に応じて、どのギャンブルデッキとカスタムサイドデッキが可能な高度なバージョンを開発する努力をするかもしれません。
プレーヤー
このゲームのプレイヤーは、あなたが設計したボットになります。各ボットはPlayerクラスを拡張し、Mechanicsパッケージをインポートし、次のようにplayerパッケージに常駐する必要があります。
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;
}
}
各ラウンドで、コントローラーは、ボットが立っていることを以前に示していない限り、ボットのgetResponseメソッドを呼び出します。getResponseメソッドは、アクションと再生するカードの2つのプロパティを設定できます。アクションは次のいずれかです。
- 終了:ターンを終了し、次のターンに新しいカードを引きます。
- STAND:現在のハンド値に留まります。カードを引きません。
- PLAY:サイドデッキからカードを再生してから立ちます。
プレイするカードは、アクションをPLAYに設定した場合にのみ重要です。Cardオブジェクトを取ります。渡すカードオブジェクトがサイドデッキに存在しない場合、ボットは代わりに立ちます。
ボットが各ターンに受け取るパラメーターは次のとおりです。
- 各プレイヤーの勝利を含む配列。wins [0]はプレイヤー1、wins 1はプレイヤー2(int [])
- ボットがプレイヤー1であるかどうか(ブール値)
- これまでに配られたカードのコレクション(コレクション)
- これまでに相手に配られたカードのコレクション(コレクション)
- サイドデッキのカードのコレクション(コレクション)
- 相手のサイドデッキに残っているカードの数(int)
- 相手が最後に行ったアクション(アクション)[注:これはENDまたはSTANDのいずれかであり、再生はできません]
- 対戦相手がカードをプレイしたかどうか(ブール値)
ボットルール
ボットは、getResponseメソッドを介して提供された情報のみを使用できます。彼らは他のクラスと対話しようとするべきではありません。ラウンド間でデータを保存するために単一のファイルに書き込む場合があります。必要に応じて、カスタムメソッド、カスタムプロパティなどがあります。それらは妥当な時間内に実行する必要があります(プログラムの実行が実質的に瞬時でない場合、何かがおかしいことに気づきます)。
コードに何らかの悪用が見つかった場合、「自分自身を入れて」という報酬が与えられます。最初にエクスプロイトに気付いた場合は修正しますが、報酬はありません。
デモ
この投稿ではすべてが既に説明されているため、ボットを作成するためにコントローラーは必要ありません。ただし、テストする場合は、https://github.com/PhantomJedi759/simplepazaakにある 2つの基本的なボットが含まれています。どちらも「インテリジェント」な対戦相手に耐える必要はありません。エンドとスタンドのどちらかしか選択しないからです。以下は、彼らが行うことのサンプル実行です。
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!
これらのボットはドローの運に完全に依存しているため、勝敗の比率は大きく異なる可能性があります。スキルがゲームの運とどのように戦うことができるかを見るのは興味深いでしょう。
これが必要なものすべてです!ボットを構築してください!
ルールの明確化
メインデッキは40枚のカードです:4x1-10各ハンドの始めにシャッフルされます。
プレイヤーのサイドデッキには、2x1-5からランダムに選択された4枚のカードがあります。サイドデッキは手の間で持続します。
ゲームでは最高の3分の5のハンドがプレイされます。ボットは、勝ったゲームの総数に基づいて、次にハンドの総数に基づいてスコアリングされます。
マッチングは、各プレイヤーが他のすべてのプレイヤーに対して100,000ゲームをプレイする必要があるように処理されます。
Pazaak Cupでは、エリミネーションスタイルのラウンドで、Pazaakボットの中で最も優れているのは誰かを絞り込みます。ボットの各ペアは、100,000ゲームの最高の4から4セットをプレイします。4人に勝った人は、はしごを上に向かって次の対戦相手に移動し、敗者は順位を競うために戦い続けます。このスタイルのゲームプレイは最も公平です。ボットは特定の対戦相手を「勝利」させて、他の対戦相手に対する能力の不足を補うことができないからです。少なくとも8つのボットが提出されている場合、7月3日金曜日にPazaakカップが開催されます。勝者には、正解ステータスとAdvanced Pazaakのスターティングボーナスが提供されます。これは、Pazaak Cupが開催されるのとほぼ同時に準備ができていることを願っています。