// 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; }
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; }
/// <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(); } }