public GameEngine() { _gameRepository = new GameRepository(); _gameState = LoadGameStateFromDb(); moveGenerator = new MoveGenerator(_gameState); _gameChecker = new GameChecker(_gameState); }
public static async Task CheckPercentageLostGames_ReturnsDouble() { var games = await ChessAPI.GetMonthlyArchiveAsync("https://api.chess.com/pub/player/calculatedblunder/games/2018/08"); var percentage = GameChecker.CheckPercentageLostGames(games, "calculatedblunder"); Assert.IsTrue(percentage > 0); }
// todo delete member class public GameForm(Db connectionDb, Rule rule, IEnumerable <Team> members, GameHeader gameHeader) { InitializeComponent(); _connectionDb = connectionDb; _gameHeader = gameHeader; _rule = rule; _connectionDb.ConnectionContext.Teams.Load(); _teams.AddRange(members); Text = GetFormText(); _gameChecker = GameCheckerFactory.GetGameChecker(_rule); _gameFlow = new GameFlow(_rule, _teams); InitThrow(); AddGrids(); UpdateGameState(); LoadExistingGame(); }
public void GetStatusFrom_Player2Wins_ReturnsPlayer2() { // arrange var checker = new GameChecker(); var board = new CrossesBoard(); board.SetToken(GameToken.Player2, new BoardPosition(0, 0)); board.SetToken(GameToken.Player2, new BoardPosition(0, 1)); board.SetToken(GameToken.Player2, new BoardPosition(0, 2)); // act var status = checker.GetStatusFrom(board); // assert Assert.That(status, Is.EqualTo(GameStatus.Player2Wins)); }
public void GetStatusFrom_PartiallyFilledBoard_ReturnsOngoing() { // arrange var checker = new GameChecker(); var board = new CrossesBoard(); board.SetToken(GameToken.Player1, new BoardPosition(0, 0)); board.SetToken(GameToken.Player2, new BoardPosition(1, 2)); board.SetToken(GameToken.Player1, new BoardPosition(2, 1)); // act var status = checker.GetStatusFrom(board); // assert Assert.That(status, Is.EqualTo(GameStatus.Ongoing)); }
public void GetStatusFrom_PlayerWinsDiagonal_ReturnsPlayer(int column1, int row1, int column2, int row2, int column3, int row3) { // arrange var checker = new GameChecker(); var board = new CrossesBoard(); board.SetToken(GameToken.Player1, new BoardPosition(column1, row1)); board.SetToken(GameToken.Player1, new BoardPosition(column2, row2)); board.SetToken(GameToken.Player1, new BoardPosition(column3, row3)); // act var status = checker.GetStatusFrom(board); // assert Assert.That(status, Is.EqualTo(GameStatus.Player1Wins)); }
public void GetStatusFrom_PlayerWinsRow_ReturnsPlayer(int row) { // arrange var checker = new GameChecker(); var board = new CrossesBoard(); board.SetToken(GameToken.Player1, new BoardPosition(0, row)); board.SetToken(GameToken.Player1, new BoardPosition(1, row)); board.SetToken(GameToken.Player1, new BoardPosition(2, row)); // act var status = checker.GetStatusFrom(board); // assert Assert.That(status, Is.EqualTo(GameStatus.Player1Wins)); }
public static void Launch(Game p, SDKApplication app) { GameChecker checker = new GameChecker(p); string filename = string.Empty; string arguments = string.Empty; if (!checker.IsValid()) { MessageBoxes.Error(BuildFullErrorMessage(checker.LastErrorMessage)); return; } //Select configuration switch (app) { case SDKApplication.Hammer: filename = GetToolPath(p, app); arguments = "-nop4 "; break; case SDKApplication.HLMV: filename = GetToolPath(p, app); break; case SDKApplication.FacePoser: filename = GetToolPath(p, app); arguments = "-nop4 "; break; } //Add gamedir to arguments arguments += string.Format("-game {0}{1}{0}", '"', p.GetGameinfoDirectory()); //Create process Process proc = new Process(); proc.StartInfo.WorkingDirectory = p.GetBinDirectory(); proc.StartInfo.FileName = filename; proc.StartInfo.Arguments = arguments; //Start process proc.Start(); }
private void okButton_Click(object sender, EventArgs e) { Enabled = false; DataManagers.GameManager.Objects = new List <Game>(); Game promptedGame = GetPromptedGame(); GameChecker gameChecker = new GameChecker(promptedGame); if (!gameChecker.IsValid()) { MessageBoxes.Error(gameChecker.LastErrorMessage); Enabled = true; return; } PromptedGame = promptedGame; DialogResult = DialogResult.OK; Close(); }
public void GetStatusFrom_FilledBoardNoWinner_ReturnsDraw() { // arrange var checker = new GameChecker(); var board = new CrossesBoard(); board.SetToken(GameToken.Player1, new BoardPosition(0, 0)); board.SetToken(GameToken.Player1, new BoardPosition(0, 1)); board.SetToken(GameToken.Player1, new BoardPosition(1, 2)); board.SetToken(GameToken.Player1, new BoardPosition(2, 0)); board.SetToken(GameToken.Player1, new BoardPosition(2, 1)); board.SetToken(GameToken.Player2, new BoardPosition(0, 2)); board.SetToken(GameToken.Player2, new BoardPosition(1, 0)); board.SetToken(GameToken.Player2, new BoardPosition(1, 1)); board.SetToken(GameToken.Player2, new BoardPosition(2, 2)); // act var status = checker.GetStatusFrom(board); // assert Assert.That(status, Is.EqualTo(GameStatus.Draw)); }
private void saveButton_Click(object sender, EventArgs e) { Game newGame = new Game() { Name = nameTextBox.Text, GameDir = gameDirTextBox.Text, GameinfoDirName = gameInfoTextBox.Text }; GameChecker checker = new GameChecker(newGame); if (!checker.IsValid()) { string message = checker.LastErrorMessage + "\nWould you like to continue anyways?"; if (MessageBoxes.Warning(message, MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } } Game = newGame; DialogResult = DialogResult.OK; Close(); }
// Use this for initialization public void Initialize() { instance = this; }
public char?[,] HardModeMove() { var hardMode = new HardModeLogic(GameState); return(GameChecker.IsItFirstMove(GameState) ? hardMode.FirstHardMove() : hardMode.OtherHardMoves()); }
public string GetGameStatus() { return(_gameChecker.CheckForWin('X', _gameState) ? "Victory" : _gameChecker.CheckForWin('O', _gameState) ? "Defeat" : GameChecker.IsGameStillGoing(_gameState) ? "Still playing..." : "Draw"); }