このリポジトリは、NTT東日本のプログラミング大会「ALGORI」のUNO用対戦プログラム「Schlange」を管理するものです。
一番単純なヒューリスティックプレイヤです。 戦略は以下の通りです。
常にしない。
手札中の一番多い色を選ぶ。
合法なら常に提出する。
- 優先順: 記号カード > 数字カード > シャッフルワイルド = 白いワイルド > ワイルド > ワイルドドロー4 > カードを引く。
- 数字カードは、書いてある数字の大きいものを優先する。
- 優先順位が最高のものが複数あれば、手札に先に追加されたものを出す。
schlangeにいくつか戦略を追加したヒューリスティックプレイヤです。 戦略は以下の通りです。
常にしない。
手札中の一番多い色を選ぶ。
- ワイルドドロー4の反則はしない。
- 合法なら常に提出する。
-
ワイルドドロー4の反則はしない。
-
手札が少ないプレイヤがいる
- 手札にワイルドドロー4がある OR 自分の手札が多い
- シャッフルワイルドがある
- シャッフルワイルドを出す。
- シャッフルワイルドがある
- 妨害手が出せる
- 妨害手を出す。
- 手札にワイルドドロー4がある OR 自分の手札が多い
-
自分の勝つ見込みが少ない
- 減点の大きい手から出す。
-
自分の手札の色が偏っていて、その色が場の色と異なる
- ワイルドを持っている
- ワイルドを出す。
- ワイルドを持っている
-
通常手を出す。
- 次プレイヤの手札が少なく、その次のプレイヤの手札が少なくない
- ワイルドドロー4 > 白いワイルド(バインド2) > ドロー2 > スキップ。
- 次プレイヤの手札が少なく、前プレイヤの手札が少なくない
- リバース。
自分の手札が多く、相手の内2人の手札が少ないなら、勝つ見込みが少ない。
手札が5枚以上で、手札中の一番多い色の枚数が、手札の50%以上。
次の優先順位でカードを出す。
- 手札中に同じ色のカードがどれだけ多く存在するか。
- 手札中に同じ模様のカードがどれだけ多く存在するか。
- 記号カード: 順番はテキトー。
- 数字カード: 数字が大きい順。
- ワイルド系: 順番はテキトー。
- ビルドする。
docker bulid schlange .
- 実行する。
"http://localhost:8080/", "Dealer 1", "Player 1"
の部分は、それぞれ接続先アドレス、ディーラ名、プレイヤ名をご自身の環境等に合わせて書き換えてください。
docker run -p 8080:8080 schlange "http://localhost:8080/", "Dealer 1", "Player 1"