public void drawGameState() { this.pieceSize = Math.Min(box.Width / game.sizeX, box.Height / game.sizeY); g.Clear(background); int[] triplets = AlphaBetaEngine.getTripletsCount(game); int[] bonuses = AlphaBetaEngine.getPositionBonuses(game); int score = triplets[0] * 100 + bonuses[0] - triplets[1] * 100 - bonuses[1]; drawGrid(); g.DrawString((triplets[0] * 100 + bonuses[0]) + "\t" + (triplets[1] * 100 + bonuses[1]) + "\t" + (score > 0 ? "+" : "") + score, new Font("Arial", 12), Brushes.Black, 0, 0); for (int i = 0; i < game.sizeX; i++) { for (int j = 0; j < game.sizeY; j++) { if (game.board[i, j] != null) { Brush b = game.board[i, j] == true ? FirstPlayer : SecondPlayer; g.FillEllipse(b, i * pieceSize, (game.sizeY - j - 1) * pieceSize, pieceSize, pieceSize); } } } for (int i = game.sizeY - 1; i >= 0; i--) { if (game.board[game.lastMove, i] != null) { g.FillEllipse(Brushes.Black, (game.lastMove + 0.25f) * pieceSize, (game.sizeY - i - 0.75f) * pieceSize, pieceSize / 2, pieceSize / 2); break; } } box.Invoke(rm); }
private void button1_Click(object sender, EventArgs e) { sizeX = int.Parse(SizeXcomboBox.Text); sizeY = int.Parse(SizeYcomboBox.Text); switch (RedMainComboBox.Text) { case "Monte Carlo engine": first = new MCEngine(int.Parse(RedAddComboBox.Text), sizeX, sizeY); break; case "Random engine": first = new RandomPlayer(sizeX, sizeY); break; case "Human": first = new HumanPlayer(); break; case "Alpha-Beta engine": first = new AlphaBetaEngine(sizeX, sizeY, int.Parse(RedAddComboBox.Text), false); break; case "Alpha-Beta engine EXPERIMENTAL": first = new AlphaBetaExperimentalEngine(sizeX, sizeY, int.Parse(RedAddComboBox.Text), false); break; } switch (BlueMainComboBox2.Text) { case "Monte Carlo engine": second = new MCEngine(int.Parse(BlueAddComboBox.Text), sizeX, sizeY); break; case "Random engine": second = new RandomPlayer(sizeX, sizeY); break; case "Human": second = new HumanPlayer(); break; case "Alpha-Beta engine": second = new AlphaBetaEngine(sizeX, sizeY, int.Parse(BlueAddComboBox.Text), false); break; case "Alpha-Beta engine EXPERIMENTAL": second = new AlphaBetaExperimentalEngine(sizeX, sizeY, int.Parse(BlueAddComboBox.Text), false); break; } this.Close(); mainForm.start(sizeX, sizeY, first, second); }