Example #1
0
        public static void DrawCB(Gomoku gomoku, Graphics gra, PictureBox pic, bool onlyboard = false)
        {
            //每排数量
            int horC = MainSize.CBLine;
            //间隔
            int gap = MainSize.CBGap;
            //宽
            int CBWid = (horC - 1) * gap + 1;
            //高
            int CBHei = (horC - 1) * gap + 1;
            //设置字体
            Font       drawFont  = new Font("Arial", 12);
            SolidBrush drawBrush = new SolidBrush(Color.Black);
            Image      img       = new Bitmap(CBWid + offsetX + 10, CBHei + offsetY + 10);

            gra = Graphics.FromImage(img);
            //画棋盘
            for (int i = 0; i < horC; i++)
            {
                gra.DrawLine(Gomoku.pen, 0 + offsetX, i * gap + offsetY, CBWid + offsetX, i * gap + offsetY);
                gra.DrawLine(Gomoku.pen, i * gap + offsetX, 0 + offsetY, i * gap + offsetX, CBHei + offsetY);
                gra.DrawString(Convert.ToString(i + 1), drawFont, drawBrush, 0, i * gap + 20);
                gra.DrawString(Convert.ToString((char)(65 + i)), drawFont, drawBrush, i * gap + 20, 0);
            }
            gra.DrawLine(Gomoku.pen, 0 + offsetX, horC * gap + offsetY, CBWid + offsetX, horC * gap + offsetY);
            gra.DrawLine(Gomoku.pen, horC * gap + offsetX, 0 + offsetY, horC * gap + offsetX, CBHei + offsetY);

            if (!onlyboard)
            {
                for (int i = 0; i < 15; i++)
                {
                    for (int j = 0; j < 15; j++)
                    {
                        switch (gomoku.Chess(i, j))
                        {
                        case 1:
                            gra.FillEllipse(Gomoku.blackBrush, i * 50 + 15, j * 50 + 15, 30, 30);
                            break;

                        case 2:
                            gra.FillEllipse(Gomoku.whiteBrush, i * 50 + 15, j * 50 + 15, 30, 30);
                            break;
                        }
                    }
                }
            }

            pic.Image = img;
        }
Example #2
0
File: Form1.cs Project: HLNN/Gomoku
        private void timer1_Tick(object sender, EventArgs e)
        {
            Gomoku gomoku = this;

            if (game.Review)
            {
                Ticks++;
                bool moveFlag = false;

                while (game.Moves[game.Steps, 1] < Ticks * 1000)
                {
                    if (game.Moves[game.Steps, 0] == 0)
                    {
                        game.Review      = false;
                        game.AllowToMove = game.OldAllowToMove;
                        check_win();
                        return;
                    }

                    Image    img = ChessBoard.Image;
                    Graphics gra = Graphics.FromImage(img);
                    switch (game.Moves[game.Steps, 0])
                    {
                    case 1:
                        gra.FillEllipse(blackBrush, game.Moves[game.Steps, 2] * 50 + 15, game.Moves[game.Steps, 3] * 50 + 15, 30, 30);
                        break;

                    case 2:
                        gra.FillEllipse(whiteBrush, game.Moves[game.Steps, 2] * 50 + 15, game.Moves[game.Steps, 3] * 50 + 15, 30, 30);
                        break;
                    }
                    ChessBoard.Image = img;

                    game.BlackTime       = game.Moves[game.Steps, 4];
                    game.WhiteTime       = game.Moves[game.Steps, 5];
                    game.BlackTimeThis   = 0;
                    game.WhiteTimeThis   = 0;
                    white_time_all.Text  = "局时: " + Convert.ToString(game.WhiteTime) + "秒";
                    white_time_this.Text = "步时: " + Convert.ToString(game.WhiteTimeThis) + "秒";
                    black_time_all.Text  = "局时: " + Convert.ToString(game.BlackTime) + "秒";
                    black_time_this.Text = "步时: " + Convert.ToString(game.BlackTimeThis) + "秒";

                    moveFlag = true;
                    game.Steps++;
                }

                if (!moveFlag)
                {
                    switch (game.Moves[game.Steps, 0])
                    {
                    case 1:
                        game.BlackTime++;
                        game.BlackTimeThis++;
                        black_time_all.Text  = "局时: " + Convert.ToString(game.BlackTime) + "秒";
                        black_time_this.Text = "步时: " + Convert.ToString(game.BlackTimeThis) + "秒";
                        break;

                    case 2:
                        game.WhiteTime++;
                        game.WhiteTimeThis++;
                        gomoku.white_time_all.Text  = "局时: " + Convert.ToString(gomoku.game.WhiteTime) + "秒";
                        gomoku.white_time_this.Text = "步时: " + Convert.ToString(gomoku.game.WhiteTimeThis) + "秒";
                        break;
                    }
                }
            }
            else if (gomoku.game.Start)
            {
                switch (gomoku.game.WhoToMove)
                {
                case 1:
                    gomoku.game.BlackTime++;
                    gomoku.game.BlackTimeThis++;

                    gomoku.black_time_all.Text  = "局时: " + Convert.ToString(gomoku.game.BlackTime) + "秒";
                    gomoku.black_time_this.Text = "步时: " + Convert.ToString(gomoku.game.BlackTimeThis) + "秒";

                    if (gomoku.game.BlackTimeThis >= 15)
                    {
                    }
                    break;

                case 2:
                    gomoku.game.WhiteTime++;
                    gomoku.game.WhiteTimeThis++;

                    gomoku.white_time_all.Text  = "局时: " + Convert.ToString(gomoku.game.WhiteTime) + "秒";
                    gomoku.white_time_this.Text = "步时: " + Convert.ToString(gomoku.game.WhiteTimeThis) + "秒";

                    if (gomoku.game.WhiteTimeThis >= 15)
                    {
                    }
                    break;
                }
            }
        }