예제 #1
0
        private async void CellClicked(object sender, EventArgs e)
        {
            CellView clickedCell = (CellView)sender;

            if (!clickedCell.model.resolved && game.MovePossible(clickedCell.model) && game.IsPlayerTurn())
            {
                resetBackColor(cellBackground);
                game.PlayMove(clickedCell.model);
                roundPictureBox4.Show();
                roundPictureBox1.Hide();

                resetBackColor(cellBackground);
                CheckWin();

                if (!game.IsPlayerTurn())
                {
                    UseWaitCursor = true;
                    label1.Show();
                    int moveIndeks = await Task.Run(() => game.minmax.GetTurn());

                    game.PlayMove(game.currPossibleMoves[moveIndeks]);
                    label1.Hide();
                    UseWaitCursor = false;
                    roundPictureBox4.Hide();
                    roundPictureBox1.Show();

                    CheckWin();
                }
            }
        }
예제 #2
0
        public Game GenSuccesor(Cell newMove)
        {
            Game succesor  = this.Clone();
            int  moveIndex = currPossibleMoves.IndexOf(newMove);

            succesor.PlayMove(succesor.currPossibleMoves[moveIndex]);

            return(succesor);
        }
예제 #3
0
        public Form1(string name, int player, int depth, Image avatar, Form2 form)
        {
            InitializeComponent();
            DoubleBuffered         = true;
            roundPictureBox2.Image = avatar;
            form2 = form;


            game = new Game.Game(player, depth);
            SetModels();
            SetSubscribers();

            humanPlayer = player;

            DrawPlayerSigns(humanPlayer);

            if (!game.IsPlayerTurn())
            {
                int moveIndeks = game.minmax.GetTurn();
                game.PlayMove(game.currPossibleMoves[moveIndeks]);
                CheckWin();
            }
            labelName.Text = name;

            gameThread = new Thread(() =>
            {
                game.minmax.GetTurn();
                CheckWin();
            });
            if (form2.NightMode)
            {
                DarkMode();
            }
            else
            {
                LightMode();
            }
        }