Dominion Strategy Forum

Please login or register.

Login with username, password and session length

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Chris

Filter to certain boards:

Pages: [1]
1
Rules Questions / Re: Champion questions
« on: April 29, 2016, 06:31:49 pm »
Thanks guys!

So trivia: ThroneRoom + Champion yields how many actions left that turn?

I think it's 3:
ThroneRoom
Champion +1 Action
Champion +1 Action (and +1 Action for Champion instance just played!)

2
Rules Questions / Champion questions
« on: April 28, 2016, 10:52:24 pm »
A couple edge case questions:

ThroneRoom + Champion - does this cause +2 Actions for each action? This would cause Diadem to be worth more.

BonFire + Champion - do the effects of +1 Action and blocking actions continue if Champion was trashed?

3
Rules Questions / Re: Trading Post and Market Square
« on: March 31, 2016, 10:24:47 am »
Thanks!

4
Rules Questions / Trading Post and Market Square
« on: March 30, 2016, 01:52:34 am »
Trading Post says to trash 2 cards.
Say my hand is Trading Post, Market Square, Copper and I play Trading Post.

Do I trash the cards sequentially and resolve on trash effects for the 1st before resolving the second?

This would allow me to trash the Copper, discard a MarketSquare and gain a Gold and not loose the MarketSquare. At that point I assume Trading Post has lost track of Market Square and you do not gain a Silver.

Or, is trashing both cards uninterruptable and the Market Square is trashed before it can be revealed?

5
Simulation / More DominionSim
« on: January 24, 2016, 01:17:18 pm »
Nearly all cards are implemented now, including DarkAges, Guilds and Adventures with events and tokens. Still missing are things on discard (like Page, Tunnel) and cards that change types (Band of Misfits and Inheritance) and Prince.

Still debating how to edit brains. The code is nice, but lots of work to implement and isn't totally scaling ( "PlaceMinusTwoCoinsCostToken Baker;" is a bit awkward).

Gain Knights; doesn't work yet.

Give it a shot:

https://github.com/ChrisDS1/DominionSim/releases





6
Simulation / Re: DominionSim - Now with Intrigue
« on: October 26, 2015, 08:13:28 pm »
Yes!


7
Simulation / Re: DominionSim - Now with Intrigue
« on: May 30, 2015, 06:46:34 pm »
Looks like I didn't actually upload 0.2.4.0, it should be there now :)

8
Simulation / Re: DominionSim - Now with Intrigue
« on: May 16, 2015, 12:17:10 am »
Yup, same with the Deck since it's really a probability draw to the player.

Lots of UI and tool ideas left. I've found though that some cards require dramatic changes to the internals and the UI. For example: how do you represent Band of Misfits as a played duration? It has to be both in the list. So I want to get the hardest stuff in and then iterate more on the editor.

9
Simulation / Re: DominionSim - Now with Intrigue
« on: May 13, 2015, 11:48:39 pm »
I added most of the Seaside cards:

https://github.com/ChrisDS1/DominionSim/releases/

After playing Adventures and looking at other cards not yet implemented, I think there's some refactoring that needs to happen to better support the more complicated features of the game. So next release is going to focus on getting the hardest cards done (like Band of Misfits, Prince, others), finalizing the file format the best I can and getting the source in shape that I can release it.

10
Simulation / Re: DominionSim - Now with Intrigue
« on: April 17, 2015, 10:35:12 am »
What are the issues you're having getting it to buy cards the way you do?

11
Simulation / Re: DominionSim - Now with Intrigue
« on: April 17, 2015, 01:12:07 am »
Yes. They're a pain in the butt. :)

12
Thanks!

13
Rules Questions / Resolving order of duration effects with Throne Room
« on: April 15, 2015, 02:03:54 am »
Say I play this as actions:  Village, Throne Room -> Merchant Ship, Storyteller

In this case, I must resolve the Merchant Ship being played twice before I can consume the coins using Storyteller.

Now, say I play this turn:  Village, Throne Room -> Merchant Ship, Prince -> Storyteller

On the next turn, I get to choose if I resolve Merchant Ship or Storyteller first. However, can I choose to resolve a single Merchant Ship effect, then Storyteller, then the second Merchant Ship effect?

Worded differently: does TR force duration effects to be played together like it does when they are played as actions?

14
Simulation / Re: DominionSim - Now with Intrigue
« on: April 13, 2015, 10:41:55 pm »
Sure, that one's easy. Here you go:

https://github.com/ChrisDS1/DominionSim/releases

15
Simulation / Re: Introducing DominionSim
« on: April 04, 2015, 01:03:35 am »
I was not aware of Dominulator, it looks awesome! Someone should update the simulator page with all the options. :) What license is the Dominulator source released under?

Why write a new engine? That's a long answer. Some reasons:
1. Search turn space for best play, zero to little hard coded priority lists.
2. Use multi-threading to speed up analysis
3. Quickly iterate on strategy in UI (without recompiling)

All together these require some special attention. Also because I like modern C++ programming and no one's done this kind of tool yet. :)

So, for example, to do #1 take a look a the source for Mine:



The key part here is "view.Continuation(...)". This allows the engine to re-enter this code to try different options. It simulates each combination by cloning the game it can see and measures the result. From there it picks the best after a certain recursion rate (5 right now) and then makes the actual play. This means it can (in theory) make better decisions based on the behavior of the cards instead of a list. These continuations are recursive within cards. ThroneRoom can result in a large chain of nested Continuations and the game will plug in different decisions at each level to get the best result.

With this model, I don't need to think of how cards get played, it will figure them out:



16
Simulation / Re: DominionSim - Now with Intrigue
« on: March 30, 2015, 11:44:43 pm »
Lost City has an "on gain" requirement that no other card has in the engine yet.  Definitely want to get there.

I can add turn numbers. The "4 Provinces" I want to answer in a different way though: a tool which takes an equation, like CountOf(Provinces) and returns the average value during analysis. Or plots it per turn. This would allow a lot of flexibility for doing analysis and building a "dashboard" for analyzing a game.


17
Simulation / Re: DominionSim - Now with Intrigue
« on: March 30, 2015, 11:08:45 pm »
Also got to adding Storyteller and Bazaar

https://github.com/ChrisDS1/DominionSim/releases


18
Simulation / Re: DominionSim - Now with Intrigue
« on: March 30, 2015, 11:21:50 am »
Not a promise to do this always in the future as cards come out, but some of these are easy so I added Magpie.

https://github.com/ChrisDS1/DominionSim/releases




19
Simulation / Re: DominionSim - Now with Intrigue
« on: March 30, 2015, 10:20:17 am »
The output on the right is scrolled to the middle of the game, where the state on the left is the end of the game. If you setup a turn a from scratch, it will prefer to pass Curses and cards it doesn't care about.

When a brain is asked to pass a card, it will iterate what cards to pass and the resulting turn after that. So in a tough choice case like "ThroneRoom Remodel Gold Gold Gold", it will choose Gold because it sees it can gain 2 Provinces keeping the other cards.



By the way, there's an option to show Debug Output which will show some of the internal iteration it's doing. (Eventually want this to provide good data for debugging the brain code):


20
Simulation / Re: DominionSim - Now with Intrigue
« on: March 30, 2015, 01:29:12 am »
Time flies when you're having fun. :)  Certainly would like to make it through all of them. Adding cards isn't that hard, unit tests for cards takes a while. I really want to get to more of the tools to explore and analyze games done too, so I'm staging things and not just burning through all expansions at once.

21
Simulation / DominionSim - Now with Intrigue
« on: March 30, 2015, 12:30:25 am »
All righty, finally got Masquerade implemented and now all Intrigue cards are baked into DominionSim! Bridge is probably my new favorite card for exploring what's possible in a single turn. Thanks for all the feedback so far. Please continue to post suggestions and issues here or on GitHub. More tools, improvements and Seaside coming soon! Stay tuned.

Additionally:
- Added DrawPile and AllOpponentsCards as a location that works in all functions. Thanks for the feedback!
- Added some more built in brains ported from Geronimoo's simulator.
- Better cancelling during analysis or playing a complex turn.
- Performance improvements on Cellar, ThroneRoom and SecretChamber.

Get it here: https://github.com/ChrisDS1/DominionSim/releases

Masquerade in a big game:


Solve which choices to make in cards like Pawn, Minion, Steward and Mining Village:


Nobles, GreatHall, Harem, Upgrade, Bridge:




22
Simulation / Re: Introducing DominionSim
« on: March 14, 2015, 01:55:23 am »
I went with option 2 for now. So back to what everyone is familiar with: CountOf(Province, Deck) for how many Provinces you own overall.

Opponent's cards are tricky. First, you don't know how many opponents you have or your brain is only good for one kind of game. So any function has to account for all opponents, or the one winning or something else. Second, you can't always calculate what cards they have. Masquerade in a 3+ player will mean one player passes another player a card you can't see.  You can calculate the difference between your cards and the supply, yielding how many all of your opponents have. AllOpponentsCountOf(Province). This is what Geronimoo's simulator offers.

https://github.com/ChrisDS1/DominionSim/releases/tag/0.1.1.0.beta

Also:
Added Courtyard, Pawn, SecretChamber, GreatHall, ShantyTown, Steward, Conspirator, Ironworks, Baron, Scout, Duke, Harem and Nobles
Additional output while playing actions, ex: "+2 Actions"
Fixed ambiguity with Trash keyword, location is now TrashPile



23
Simulation / Re: Introducing DominionSim
« on: March 12, 2015, 12:40:04 pm »
It will only run on Windows, but you can run it on a VM or with Boot Camp on a Mac.

For CountOf(Gold, Dominion), I debated this a lot because the term "Deck" is overloaded and am open to suggestions. The Dominion rules refer to "Deck" as the pile you draw from. At the end of the game, you put all cards in your deck and calculate VP.  There isn't a term for "all your cards" so I thought your "Dominion" was the appropriate term. Also what's missing is an enum for describing the draw pile deck to count of cards in there (I just didn't get around to implementing it yet).

So options could be:
  1. Dominion for "all cards" and Deck for draw pile during game.
  2. Deck for "all cards", DrawPile for draw pile during game.
  3. AllCards for "all cards" and Deck for draw pile during game.
  4. ??

I'm about a 3rd of the way through the Intrigue cards. Goal is to get to them all eventually. There's some that I will likely procrastinate on (Possession). But I also want to focus on getting the tools right too. The tools decide how the cards are authored and I've re-authored the cards like 3 times since starting. So I didn't want to accumulate a huge set of cards I would have to redo again. I think the architecture is pretty good right now, so I'm going to get Intrigue done and go from there.

Yes, I want to release the source code. One step at a time...

24
Simulation / Introducing DominionSim
« on: March 10, 2015, 03:17:31 am »
Hello!

My future wife and I are huge Dominion fans. We’ve played several games a day over the last few years, and only recently decided to take a break.  :) During that time, I’ve learned I’m a better engineer than Dominioner and devised a secret scheme to program my way out of losing more often than not. I was quickly discovered and that began a journey of building a program that could take any situation or any set of cards and produce an optimal outcome. “Should only take a couple days”.

That was quite a while ago, but today I feel it’s in a state that it needs feedback from someone who isn’t in my head.

DominionSim is a WPF app with a C++ core. It’s built to be multi-threaded and with a UI that’s easy to describe game situations. It will run best on a high end, multi-core PC.

Internally, each turn has its action possibilities enumerated and by cloning the game, the action can be played and new possibilities can be enumerated. It doesn’t cheat by knowing the cards of the opponent or what exactly it will draw. But it does track cards it’s played and can reasonably guess what draw will come next to decide on what to play.

How is it different from Geronimoo’s simulator? There is no hard coded action or trash priority list. There are some hard coded responses to cards (like trashing opponents cards with Thief), but most situations are dealt by enumerating possibilities and choosing the one which gives the best result according to the player’s code.

My goal with DominionSim is to explore interaction of cards which will generate human usable results. It's not there yet, but the essence is coming along.

So what stuff can it do?
-   Solve a turn for likely best play.
-   Analyze a game outcome from beginning, or any point in between
-   Analyze a turn for possible outcomes
-   Flexible language for coding priority gain, trash and play action lists with code complete.
-   Everything is customizable. Change any pile content to anything. No limits on player count, starting cards, cards on the board, etc.
-   Live output. Quickly iterate on games and use links to jump between states and tools.
-   Undo, redo, save and restore all state or individual brains using XML.
-   (FUTURE) Generate a new strategy that beats existing ones using genetic algorithms
-   (FUTURE) Provide great turn prediction for what to do next (without actually playing the turn)
-   (FUTURE) Flexible graphing

Stuff in progress:
-   Only the first set of cards at this moment.
-   Some cards generate large number of choices (Cellar) and can hang the game in extreme situations.
-   Borrowed some strategies from Geronimoo’s simulator to seed the brains, but long way off from a robust set.
-   It’s not done, this is beta, find the bugs.

Issues can be posted here or on git hub. Here's where to get it:
https://github.com/ChrisDS1/DominionSim/releases

Thanks to anyone who gives it a try and gives feedback! This has been fun to build and I hope can be more than a science experiment that I've filled my free time with. Thanks to Geronimoo’s simulator for the inspiration to make this one.

Analyzing game outcomes:


Flexible language with code complete. Priority list can value Play-ing a card or Trash-ing a card over Gain-ing one.


Play Witch to win the game instead of gaining Province:


Analyze turns to find possible outcomes from drawing:


Find great results from complicated hands. Here it finds a way to play cards to get enough actions, then generate Silvers with Woodcutter, then draw them with Witch.

Pages: [1]

Page created in 0.044 seconds with 19 queries.