def buy_nothing(): # These need to be functions so they can be rerunnable with the `nonlocal` # in `_from_build_order`. return Strategy( buy=_from_build_order([ cards.ShoppingMall(), cards.RadioTower(), cards.TrainStation(), cards.AmusementPark() ]), roll_two=roll_two_never)
def fast_train_to_big_cheese(): return Strategy( buy=_from_build_order([ cards.Ranch(), cards.Ranch(), cards.Ranch(), cards.Ranch(), cards.TrainStation(), cards.CheeseFactory(), cards.CheeseFactory(), cards.CheeseFactory(), cards.RadioTower(), cards.AmusementPark(), cards.ShoppingMall(), ]), roll_two=roll_two_always_after_train_station)
def highest_margin(): return Strategy( buy=_from_build_order([ cards.Ranch(), cards.WheatField(), cards.Ranch(), cards.Ranch(), cards.Stadium(), cards.WheatField(), cards.Ranch(), cards.WheatField(), cards.RadioTower(), cards.WheatField(), cards.ShoppingMall(), cards.TrainStation(), cards.AmusementPark(), ]), roll_two=roll_two_never)
def big_convenience_store(): return Strategy( buy=_from_build_order([ cards.WheatField(), cards.Ranch(), cards.Ranch(), cards.ConvenienceStore(), cards.ConvenienceStore(), cards.Ranch(), cards.ConvenienceStore(), cards.Forest(), cards.Bakery(), cards.ShoppingMall(), cards.ConvenienceStore(), cards.RadioTower(), cards.TrainStation(), cards.AmusementPark(), ]), roll_two=roll_two_never)
def buy_everything(): return Strategy( buy=_from_build_order([ cards.WheatField(), cards.Ranch(), cards.Bakery(), cards.Cafe(), cards.ConvenienceStore(), cards.Forest(), cards.Stadium(), # cards.TvStation(), # cards.BusinessCenter(), cards.CheeseFactory(), cards.FurnitureFactory(), cards.AppleOrchard(), cards.TrainStation(), cards.Mine(), cards.FruitVegetableMarket(), cards.ShoppingMall(), cards.Mine(), cards.AmusementPark(), cards.RadioTower() ]), roll_two=roll_two_always_after_train_station)