Shuffle iT Forum

Dominion => Bug Reports => AI bugs => Topic started by: braintwister on 01 May 2017, 06:45:07 PM

Title: Bot stuck on playing Lurker
Post by: braintwister on 01 May 2017, 06:45:07 PM
Joining game #3245047 on frankfurt.


Turn 22 - Lord Rattington
L plays a Lurker.

Waiting for Lord Rattington.
Title: Re: Bot stuck on playing Lurker
Post by: Ingix on 02 May 2017, 08:56:43 AM
I noticed that

a) the Lurker was not purchased or otherwise "willingly gained" by the AI, but passed to it via Masquerade. Since this doesn't even count as gaining, maybe some setup step for the AI was left out in this case, and

b) the Nobles pile was empty, so maybe the AI decided it wanted to move one of it to the trash, which of course the game engine would not allow.

Of course, all of this is just my guesses from examining the log.
Title: Re: Bot stuck on playing Lurker
Post by: gloures on 09 May 2017, 08:18:32 PM
Also had this problem happen a couple of times while trying to replay (not from the start) an loaded game... Nobles was also in the game and empty for the most part


Original game id: 3465091

This is one of the games that ended up stuck at the last turn:  #3465728
Title: Re: Bot stuck on playing Lurker
Post by: Ingix on 22 June 2017, 03:56:50 PM
From looking at these examples and some tests of my own, the data seems to be consistent with the following simple theory:

A) If the AI plays Lurker, it will simply "do nothing".

This is rules-conform if there are no action cards in the trash, because the choice to use the "gain an Action card from the Trash" branch is valid, and when there are no action cards in the trash, "do nothing" is the only possible course of action. But it becomes not rules-conform if there are Action cards in the trash, so I guess the game engine will not allow the AI try to "do nothing".

I've never seen the AI do anything (actually trash or gain anything) when it plays Lurker and it froze always when there were Action cards in the trash.

As an experiment, I made a Kingdom with Lurker, Masquerade and 8 non-Action cards. I fed the AI lots of Lurkers, and at the end of the game #4596998 there is one 1 Action card remaining in the supply (a Lurker) and one Action card in the Trash (a Masquerade). You can see in the log that the AI did play Lurker a few times with "no effect" (turn 8,9,12). This was all before I trashed the Masquerade in turn 14.

If you load the game at its end (playing as Ingix), it is your turn and you have a Lurker in hand. If you do nothing, the AI will play a Lurker next turn and the game will freeze (because either branch of Lurker has an Action card that could be selected). But if you use your Lurker to trash the last Lurker in the supply, then the AI's Lurker play next turn will succeed (despite the Masquerade in the Trash), because now the other branch of Lurker (to trash an Action card from the supply) is impossible to do.
Title: Re: Bot stuck on playing Lurker
Post by: Kent on 27 July 2017, 12:09:38 AM
Here's another instance:
game #5484450 on oregon

Turn 5 - Lord Rattington
L plays a Raze.
L trashes an Estate.
L looks at 2 cards.
L puts a card into their hand.
L discards a Copper.
L plays a Lurker.

Waiting for Lord Rattington.

The AI bought the Lurker. There is a Prince in the Trash (that I trashed with a Lurker).
Title: Re: Bot stuck on playing Lurker
Post by: Ingix on 27 July 2017, 02:30:46 PM
Cool, I've never seen the AI buy a Lurker before, all the reported cases that I remember got the Lurker to the AI by means like Masquerade.