Shuffle iT Forum

Dominion => Bug Reports => AI bugs => Topic started by: webbnh on 21 February 2021, 04:56:24 AM

Title: The Witch cheats with the Library?
Post by: webbnh on 21 February 2021, 04:56:24 AM
Perhaps I just don't understand what the log is telling me, but it looks to me like when Revenge Witch plays the Library she gets to draw up to nine cards in her hand instead of seven?

See attached log snippets.
Title: Re: The Witch cheats with the Library?
Post by: Ingix on 21 February 2021, 09:16:15 AM
Thanks for the report,  webbnh!

What happened was that Revenge Witch started those turns with 3 cards in hand because she discarded due to Militia. Playing the Library made her hand consist of 2 cards, so she can draw at least 5 cards now. With the skipping of unwanted Action cards, that explains why she draw so much cards.
Title: Re: The Witch cheats with the Library?
Post by: webbnh on 21 February 2021, 09:08:05 PM
Ah, of course.  That makes good sense -- sorry for the bother.  However, I have two follow-ups.

The fact that the last indented line under "plays a Library" often is "discards <action-card(s)>" is a tad confusing.  That is, in most cases it makes sense, in that the AI is choosing not to play the discarded card(s), but I cannot always account for the number of cards in the AI's hand -- in most of the cases where the numbers don't add up, I assume that the missing cards are victory point cards...which is fine but why aren't these noted in an analogous "discard" message?

And, there's still one case that I don't understand -- Turn 13:  assuming that Revenge Witch starts with three cards and plays the Library, draws seven (total) cards, sets aside two (total), and discards two, she should have five cards left (3-1+7-2-2), and yet she somehow plays 2 each of coppers, silver, and gold, for a total of six!  What am I missing?

Thanks!

(By the way, I think that this implementation of Dominion is beautiful and nicely playable, and I've learned a lot from the AI's play!)
Title: Re: The Witch cheats with the Library?
Post by: Ingix on 21 February 2021, 10:24:35 PM
Quote from: webbnh on 21 February 2021, 09:08:05 PM
The fact that the last indented line under "plays a Library" often is "discards <action-card(s)>" is a tad confusing.  That is, in most cases it makes sense, in that the AI is choosing not to play the discarded card(s), but I cannot always account for the number of cards in the AI's hand -- in most of the cases where the numbers don't add up, I assume that the missing cards are victory point cards...which is fine but why aren't these noted in an analogous "discard" message?

Notice the text of Library (emphasis mine):

Draw until you have 7 cards in hand, skipping any Action cards you choose to; set those aside, discarding them afterwards.

Those lines indented under Library are the Action cards that the Witch drew, but decided to set aside for now and then, when it has reched a hand of 7 cards, it finally discards them.

Quote from: webbnh on 21 February 2021, 09:08:05 PM
And, there's still one case that I don't understand -- Turn 13:  assuming that Revenge Witch starts with three cards and plays the Library, draws seven (total) cards, sets aside two (total), and discards two, she should have five cards left (3-1+7-2-2), and yet she somehow plays 2 each of coppers, silver, and gold, for a total of six!  What am I missing?

The set aside cards are the same cards as the later discarded cards, as per the above text of Library.

R plays a Library.
  R draws 2 cards.
  R looks at a card.
  R sets a card aside with Library.

  R shuffles their deck.
  R draws a card.
  R looks at a card.
  R sets a card aside with Library.

  R draws 4 cards.
  R discards a Chapel and a Laboratory.
R plays 2 Golds, 2 Silvers and 2 Coppers. (+$12)

The Chapel and Laboratory the Witch discards at the end are the same 2 cards that it looked at and set aside before in the marked lines.
Title: Re: The Witch cheats with the Library?
Post by: webbnh on 22 February 2021, 03:45:45 AM
Excellent -- now it's all clear.  Thanks so much for the explanation!