示例#1
0
        // bắt đầu ván cờ
        private void button1_Click(object sender, EventArgs e)
        {
            //time_count = 21000; // 35  phút .
            //timer3.Start();
            //End_time = DateTime.Now;
            count_time_1 = 21000;
            count_time_2 = 21000;
            InitBoard();
            Invoke(new EnableTimerDelegate(EnableTimer), false);
            /////////////////////////////////////////////
            Save_Board.Clear();
            Save_Point.Clear();
            Save_View.Clear();
            Count = 0;
            /////////////////////////////////////////////////
            Undo_Point.Push(new tuple(-1, -1));
            Save_Board.Add(board.Copy());
            Save_Point.Add(new tuple(-1, -1));
            Count = 1;
            ///////////////////////////////////////////////
            checkBox1.Enabled = true;
            checkBox1.Checked = true;
            board.Draw(panel1, IsDrawHelp, Board.BLACK);
            listView1.Items.Clear();
            label1.Text            = "2";
            label2.Text            = "2";
            numericUpDown1.Enabled = false;
            started         = true;
            button1.Enabled = false;

            //toolStripStatusLabel1.Text = "Tới lượt bạn";
            toolStripStatusLabel1.Text = "Limit: 35 phút                ";
            label26.Text = "Lượt Bạn";
            toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
            panelColor.BackColor        = Color.Black;
        }
示例#2
0
        private void button5_Click(object sender, EventArgs e)
        {
            count_time_1 = 21000;
            count_time_2 = 21000;
            RandomGame();

            {
                Undo.Push(board.Copy());

                Save_Board.RemoveRange(Count, Save_Board.Count - Count);
                Save_Point.RemoveRange(Count, Save_Point.Count - Count);
                Count = Save_Board.Count;

                //nước đi của máy
                {
                    board.Draw(panel1, IsDrawHelp, Board.WHITE);
                    EvCompStep.BeginInvoke(new AsyncCallback(EndCompStep), null); // phương thức không đồng bộ
                    ShowPoints();

                    //toolStripStatusLabel1.Text = "Tới lượt máy";
                    label26.Text = "Lượt Máy";

                    panelColor.BackColor        = Color.White;
                    toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
                    toolStripProgressBar1.MarqueeAnimationSpeed = (int)numericUpDown1.Value * 10;
                }
                int      m        = listView1.Items.Count + 1;
                string[] stritems = { m.ToString(), "Đen", Convert.ToChar(65) + (1).ToString() };

                ListViewItem newitem = new ListViewItem(stritems);
                listView1.Items.Add(newitem);
                listView1.EnsureVisible(m - 1);// scroll list view xuống dưới
                listView1.Items[m - 1].Selected = true;
                for (int i = 0; i < m - 1; i++)
                {
                    listView1.Items[i].Selected = false;
                }
            }

            Invoke(new EnableTimerDelegate(EnableTimer), false);
            /////////////////////////////////////////////
            //Save_Board.Clear();
            //Save_Point.Clear();
            //Save_View.Clear();
            //Count = 0;
            /////////////////////////////////////////////////
            Undo_Point.Push(new tuple(-1, -1));
            Save_Board.Add(board.Copy());
            Save_Point.Add(new tuple(-1, -1));
            Count = 1;
            ///////////////////////////////////////////////
            checkBox1.Enabled = true;
            checkBox1.Checked = true;
            board.Draw(panel1, IsDrawHelp, Board.BLACK);
            listView1.Items.Clear();
            label1.Text            = "3";
            label2.Text            = "3";
            numericUpDown1.Enabled = false;
            started         = true;
            button5.Enabled = false;

            //toolStripStatusLabel1.Text = "Tới lượt bạn";
            toolStripStatusLabel1.Text = "Limit: 35 phút";
            label26.Text = "Lượt Bạn";
            toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
            panelColor.BackColor        = Color.Black;
        }
示例#3
0
        /// <summary>
        /// Thực hiện nước đi của người
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void panel1_MouseClick(object sender, MouseEventArgs e)
        {
            if (started)
            {
                numericUpDown1.Enabled = false;

                if (flag)
                {
                    return;
                }
                Undo.Push(board.Copy());

                int x = e.X / Board.WIDTH;
                int y = e.Y / Board.WIDTH;

                if (helped == 1)
                {
                    //Save_Board.Clear();
                    //Save_Point.Clear();
                    //Save_View.Clear(); // Save_View không quan trọng !
                    //Count = 0;
                    //Save_Board.Add(board.Copy());
                    //Save_Point.Add(new tuple(board.X_Pre, board.Y_Pre));
                    //Count = 1;
                    Save_Board.RemoveRange(Count, Save_Board.Count - Count);
                    Save_Point.RemoveRange(Count, Save_Point.Count - Count);
                    Count = Save_Board.Count;
                }
                helped = 0;

                if (board.Move(x, y, Board.BLACK, true) > 0)
                {
                    flag        = true;
                    bugcuoicung = 0;
                    //nước đi của máy
                    {
                        board.X_Pre = x;
                        board.Y_Pre = y;

                        board.Draw(panel1, IsDrawHelp, Board.WHITE);
                        EvCompStep.BeginInvoke(new AsyncCallback(EndCompStep), null); // phương thức không đồng bộ
                        ShowPoints();

                        //toolStripStatusLabel1.Text = "Tới lượt máy";
                        label26.Text = "Lượt Máy";

                        panelColor.BackColor        = Color.White;
                        toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
                        toolStripProgressBar1.MarqueeAnimationSpeed = (int)numericUpDown1.Value * 10;
                    }
                }
                else
                {
                    if (IsDrawHelp && (board.WhiteCount + board.BlackCount) < 64 && bugcuoicung == 0)
                    {
                        Invoke(new ShowMessageDelegate(ShowMessage), "           # Đi sai nước.\n ~ Hãy đi vào ô sáng màu ~", "Đi sai nước"
                               , MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        if ((board.WhiteCount + board.BlackCount) < 64 && bugcuoicung == 0)
                        {
                            Invoke(new ShowMessageDelegate(ShowMessage), "                 # Đi sai nước.\nHãy chọn chế độ xem nước đi hợp lệ !", "Đi sai nước"
                                   , MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    return;
                }

                int      m        = listView1.Items.Count + 1;
                string[] stritems = { m.ToString(), "Đen", Convert.ToChar(x + 65) + (y + 1).ToString() };

                ListViewItem newitem = new ListViewItem(stritems);
                listView1.Items.Add(newitem);
                listView1.EnsureVisible(m - 1);// scroll list view xuống dưới
                listView1.Items[m - 1].Selected = true;
                for (int i = 0; i < m - 1; i++)
                {
                    listView1.Items[i].Selected = false;
                }
            }
        }
示例#4
0
        /// <summary>
        /// Sau khi kết thúc bước đi của máy
        /// </summary>
        /// <param name="ob"></param>
        private void EndCompStep(object ob)
        {
            Save_Board.Add(board.Copy());
            Save_Point.Add(new tuple(board.X_Pre, board.Y_Pre));
            Count++;


            if (panel1.InvokeRequired) // panel có yêu cầu Invoke hay không
            {
                Invoke(new InvokeDraw(board.Draw), panel1, IsDrawHelp, Board.BLACK);
            }
            else
            {
                board.Draw(panel1, IsDrawHelp, Board.BLACK);
            }

            // Invoke(new SetStatusTextDelegate(SetStatusText),  label26, "Tới lượt bạn");
            Invoke(new SetStatusTextDelegate(SetStatusText), label26, "Lượt Bạn");



            int HumanSteps = board.GetEnableSteps(Board.BLACK).Count;    // số nước đi tiếp theo của người

            if (HumanSteps == 0)
            {
                Invoke(new InvokeShowGrade(ShowGrade), "");
                Invoke(new SetStatusTextDelegate(SetStatusText), label26, "");

                Invoke(new SetStatusTextDelegate_tool(SetTimerText), toolStripStatusLabel2, "");
                timer1.Stop();
                timer2.Stop();
                bugcuoicung = 1;
                // started = false;
                flag = false;
                if (board.WhiteCount > board.BlackCount)
                {
                    Invoke(new ShowMessageDelegate(ShowMessage), "Máy tính đã thắng", "Thông báo"
                           , MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    if (board.WhiteCount < board.BlackCount)
                    {
                        Invoke(new ShowMessageDelegate(ShowMessage), "Bạn đã thắng", "Thông báo"
                               , MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        if (board.WhiteCount == board.BlackCount)
                        {
                            Invoke(new ShowMessageDelegate(ShowMessage), "Hòa cờ", "Thông báo"
                                   , MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            Invoke(new ShowMessageDelegate(ShowMessage), "Bạn bị mất lượt", "Thông báo"
                                   , MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }

            flag        = false;
            bugcuoicung = 0;

            if (InvokeRequired) // lại yêu cầu kiểm tra panel có cần Invoke hay không ?
            {
                Invoke(new InvokeShowRes(ShowPoints));
            }
            else
            {
                ShowPoints();
            }
        }