public XuLyBanCo(Panel banco, TextBox tennguoichoi, PictureBox kyhieu) { this.BanCo = banco; this.TenNguoiChoi = tennguoichoi; this.KyHieuNguoiChoi = kyhieu; this.NguoiChoi = new List <Player>() { new Player("First Player", Image.FromFile("X.jpg"), Amthanh1), new Player("Second Player", Image.FromFile("O.jpg"), Amthanh2) }; //Khởi Tạo stack PlayTimeLine = new MyTack <PlayInfo>(); Stack2 = new MyTack <Point>(); //Lấy thông tin tên người chơi từ formNhapThongTin FormNhapthongTin f = new FormNhapthongTin(); //Nếu không nhập tên thì sẽ không cập nhật tên người chơi if (f.Name11 != "" && f.Name21 != "") { nguoichoi[0].Name = f.Name11; nguoichoi[1].Name = f.Name21; } N1 = nguoichoi[0].Name; N2 = nguoichoi[1].Name; NguoiChoiHienTai = 0; //Mặc định người thứ nhất đi trước ( X đi trước ) DoiNguoiChoi(); //Để picture Mark hiện ảnh và cho biết ai đi trước. }
///////////////////// public void VeBanCo() { BanCo.Enabled = true; //panel phải dc enable để chơi Matrix = new List <List <Button> >(); //Khởi tạo 2 list lồng nhau PlayTimeLine = new MyTack <PlayInfo>(); Button ButtonCu = new Button() { Width = 0, Location = new Point(0, 0) //Khởi tạo nút đầu làm mốc }; //Sử dụng hai vòng lặp lồng nhau để tạo ra bàn cờ, mỗi ô đánh là một button for (int i = 0; i < Cons.ChieuCaoBC; i++) //Đi hết hàng { Matrix.Add(new List <Button>()); //Tạo ra một list mới để lưu lại for (int j = 0; j < Cons.ChieuRongBC; j++) //Đi hết cột { Button btn = new Button() { Width = Cons.ChieuRongbtn, //Tạo ra các nút có chiều rộng là cons.ChieuRongbtn, chiều cao là cons.ChieuCaobtn Height = Cons.ChieuCaobtn, //Tạo nên button tiếp theo dựa vào ButtonCu Location = new Point(ButtonCu.Location.X + ButtonCu.Width, ButtonCu.Location.Y), //Định dạng lại ảnh cho vừa với PictureBox BackgroundImageLayout = ImageLayout.Stretch, Tag = i.ToString() //Lưu lại hàng của button }; btn.Click += btn_Click; //Tạo event Click //Thêm button vào panel bàn cờ. BanCo.Controls.Add(btn); Matrix[i].Add(btn); //Add button vào hàng thứ i của Matrix ButtonCu = btn; //gán Button mới được tạo thành button cũ để tạo ra các button tiếp theo } //Hết một hàng, khởi tạo lại hàng mới ButtonCu.Location = new Point(0, ButtonCu.Location.Y + Cons.ChieuCaobtn); ButtonCu.Width = 0; ButtonCu.Height = 0; } }