public AIArena() { stats = new Stats(); players = new Player[] { new Player("C1", 0), new Player("C2", 1), new Player("C3", 2), new Player("C4", 3) }; gameManager = new GameManager(players, 1001, new AIBidType[] { AIBidType.BASIC, AIBidType.BASIC, AIBidType.BASIC, AIBidType.BASIC }, new AIGameType[] { AIGameType.PERFECTMEMORY, AIGameType.PERFECTMEMORY, AIGameType.PERFECTMEMORY, AIGameType.PERFECTMEMORY }); }
public BaseGameViewModel(GameManager gameManager, InfoPanelViewModel infoPanelVM) { this.gameManager = gameManager; this.infoPanelVM = infoPanelVM; HandVM = new HandViewModel(this); CurrentGameState = GameState.BIDDING; }
private GameManager InitialiseTest() { var players = new Player[] { new Player("C1", 0), new Player("C2", 1), new Player("C3", 2), new Player("C4", 3) }; var gameManager = new GameManager(players, 13, new AIBidType[] { AIBidType.BASIC, AIBidType.BASIC, AIBidType.BASIC, AIBidType.BASIC }, new AIGameType[] { AIGameType.MEMORY, AIGameType.MEMORY, AIGameType.MEMORY, AIGameType.MEMORY, }); return gameManager; }
public static IBidAI CreateBidAI(Player player, GameManager game, AIBidType type) { switch (type) { case AIBidType.BASIC: return new BaseBidAI(player, game); case AIBidType.CAUTIOUS: return new CautiousBidAI(player, game); case AIBidType.SIMGAME: return new SimulateGameBidAI(player, game); case AIBidType.OMNISCIENT: return new BidSearchAI(game); } throw new ApplicationException(); }
public static IGameAI CreateGameAI(Player player, GameManager game, AIGameType type) { switch (type) { case AIGameType.BASIC: return new BaseGameAI(player, game); case AIGameType.MEMORY: return new MemoryAI(player, game); case AIGameType.PERFECTMEMORY: return new PerfectMemoryAI(player, game); case AIGameType.BRUTEFORCE: return new BruteForceAI(player, game); case AIGameType.OMNISCIENT: return new OmniscentSearchAI(game, new StandardReferee()); } throw new ApplicationException(); }
public MainWindow() { InitializeComponent(); GameManager gameManager = new GameManager(); var infoPanelVM = new InfoPanelViewModel(gameManager); InfoPanel.DataContext = infoPanelVM; //round model = new BaseGameViewModel(gameManager, infoPanelVM); model.GameStateChanged += OnGameStateChanged; Whist.DataContext = model; BiddingView.DataContext = new BiddingViewModel(model); labelC1.DataContext = model; labelC2.DataContext = model; labelC3.DataContext = model; ActionLog.DataContext = infoPanelVM; }
public BidSearchAI(GameManager gameManager) { this.gameManager = gameManager; }
public CautiousBidAI(Player player, GameManager game) : base(player, game) { }
public SimulateGameBidAI(Player player, GameManager game) : base(player, game) { }
public BruteForceAI(Player player, GameManager game) { this.player = player; this.game = game; }
private void PlayRound(GameManager gameManager) { Round round = gameManager.Round; while (round.InBiddingPhase) { var action = gameManager.GetAI(round.CurrentPlayer).GetAction(); round.BiddingDoAction(action); } round.EndBiddingRound(); while (round.InTrickPhase) { while (round.TrickInProgress) { var card = gameManager.GetAI(round.CurrentPlayer).GetMove(); foreach (Player player in gameManager.NonHumanPlayers) { gameManager.GetAI(player).ProcessOtherPlayerCard(round.CurrentPlayer, card); } round.PlayCard(card); } round.EndTrick(); } round.EndTricksRound(); }
public BaseBidAI(Player player, GameManager game) { this.player = player; this.game = game; }
public PerfectMemoryAI(Player player, GameManager game) : base(player, game) { ResetMemory(); }
public static AI CreateAI(Player player, GameManager game, AIBidType bidType, AIGameType gameType) { return new AI(player, CreateBidAI(player, game, bidType), CreateGameAI(player, game, gameType)); }
public InfoPanelViewModel(GameManager gameManager) { this.gameManager = gameManager; Player = gameManager.HumanPlayer; actionLog = new List<string>(); }