Skip to content

Commit

Permalink
Merge pull request #1010 from rezunli96:dou_dizhu
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 510206222
Change-Id: Ic6c681633f1efde2526207bdb2346c0dbdbf7f6e
  • Loading branch information
lanctot committed Feb 20, 2023
2 parents 57cb7d6 + 473f71e commit ee14973
Show file tree
Hide file tree
Showing 4 changed files with 131 additions and 122 deletions.
19 changes: 13 additions & 6 deletions open_spiel/games/dou_dizhu.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,21 @@ DouDizhuState::DouDizhuState(std::shared_ptr<const Game> game) : State(game) {
}

std::string DouDizhuState::ActionToString(Player player, Action action) const {
if (action < kDealingActionBase) {
return absl::StrFormat("Decide first card up position %d", action);
} else if (action < kBiddingActionBase) {
return absl::StrFormat("Deal %s", CardString(action-kDealingActionBase));
} else if (action == kPass) {
if (player == kChancePlayerId) {
if (action < kDealingActionBase) {
return absl::StrCat("Decide first card up position ", action);
} else if (action < kDealingActionBase + kNumCards) {
return absl::StrCat("Deal ", CardString(action - kDealingActionBase));
} else {
SpielFatalError(
absl::StrFormat("Non valid ID %d for chance player", action));
}
}

if (action == kPass) {
return "Pass";
} else if (action > kPass && action < kPlayActionBase) {
return absl::StrFormat("Bid %d", action - kBiddingActionBase);
return absl::StrCat("Bid ", action - kBiddingActionBase);
} else if (action >= kPlayActionBase && action <= kRocketActionBase) {
// For aiplane combinations, need special treatment to resolve ambiguity
if (action >= kAirplaneWithSoloActionBase && action < kBombActionBase) {
Expand Down
4 changes: 3 additions & 1 deletion open_spiel/games/dou_dizhu.h
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,9 @@ class DouDizhuGame : public Game {
public:
explicit DouDizhuGame(const GameParameters& params);
int NumDistinctActions() const override { return kRocketActionBase + 1; }
int MaxChanceOutcomes() const override { return kBiddingActionBase; }
int MaxChanceOutcomes() const override {
return kDealingActionBase + kNumCards;
}
std::unique_ptr<State> NewInitialState() const override {
return absl::make_unique<DouDizhuState>(shared_from_this());
}
Expand Down
2 changes: 1 addition & 1 deletion open_spiel/games/dou_dizhu/dou_dizhu_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ inline constexpr int kObservationTensorSize =

inline constexpr int kDealingActionBase = kNumCards - kNumCardsLeftOver;

inline constexpr int kBiddingActionBase = kDealingActionBase + kNumCards;
inline constexpr int kBiddingActionBase = 0;

inline constexpr int kPass = kBiddingActionBase;

Expand Down

0 comments on commit ee14973

Please sign in to comment.