public void Reset()
 {
     thuTu = 0;
     GiaTri = new Node[10];
     for (int i = 0; i < 10; i++)
     {
         GiaTri[i] = new Node();
     }
 }
 public _5O_ChienThang()
 {
     GiaTri = new Node[10];
     for (int i = 0; i < 10; i++)
     {
         GiaTri[i] = new Node();
     }
     thuTu = 0;
 }
        //Hàm lấy vị trí có giá trị cao nhất trên bàn cờ
        public Node GetMaxNode()
        {
            Node n = new Node();
            int maxValue = GiaTri[0, 0];
            Node[] arrMaxNodes = new Node[289];
            for (int i = 0; i < 289; i++)
            {
                arrMaxNodes[i] = new Node();
            }
            int count = 0;
            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    if (GiaTri[i, j] > maxValue)
                    {
                        n.Row = i;
                        n.Column = j;
                        maxValue = GiaTri[i, j];
                    }
                }
            }

            //Với mục đích không lặp lại bước đi giống như lần trước
            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    if (GiaTri[i, j] == maxValue)
                    {
                        n.Row = i;
                        n.Column = j;
                        arrMaxNodes[count] = n;
                        count++;
                    }
                }
            }
            //Đường đi sẽ là ngẫu nhiên

            Random r = new Random();
            int soNgauNhien = r.Next(count);
            return arrMaxNodes[soNgauNhien];
        }  ///tìm node có giá trị cao nhất và đánh cờ
 public void Add(Node n)
 {
     GiaTri[thuTu] = n;
     thuTu++;
 }
        private void txtMay_Change(object sender, TextChangedEventArgs e)
        {
            if (BanCo.Option.WhoPlayWith == Player.MayOnline)
            {


                if (BanCo.currPlayer == Player.Human && BanCo.end == Player.None)
                {

                    BanCo.board[BanCo.rows, BanCo.columns] = BanCo.currPlayer;//Lưu loại cờ vừa đánh vào mảng
                    BanCo.DrawDataBoard(BanCo.rows, BanCo.columns, true, true);
                    BanCo.end = BanCo.CheckEnd(BanCo.rows, BanCo.columns);//Kiểm tra xem trận đấu kết thúc chưa

                    if (BanCo.end == Player.Human)//Nếu người chơi 2 thắng
                    {
                        BanCo.OnWin();//Khai báo sư kiện Win
                        BanCo.OWinorLose();//Hiển thị 5 ô Win.
                        btnStartMay.Content = "New game";
                        newgame = true;
                    }
                    else
                    {
                        BanCo.currPlayer = Player.Com;//Thiết lập lại lượt chơi
                        BanCo.OnComDanhXong();// Khai báo sự kiện người chơi 2 đánh xong
                    }
                }
                if (BanCo.currPlayer == Player.Com && BanCo.end == Player.None)//Nếu lượt đi là máy và trận đấu chưa kết thúc
                {

                    //Tìm đường đi cho máy

                    BanCo.eBoard.ResetBoard();
                    BanCo.LuongGia(Player.Com);//Lượng giá bàn cờ cho máy
                    node = BanCo.eBoard.GetMaxNode();//lưu vị trí máy sẽ đánh
                    int r, c;
                    r = node.Row; c = node.Column;
                    connect.rw1 = r;
                    connect.cl1 = c;
                    BanCo.board[r, c] = BanCo.currPlayer; //Lưu loại cờ vừa đánh vào mảng
                    BanCo.DrawDataBoard(r, c, true, true); //Vẽ con cờ theo lượt chơi
                    connect.guitoado(socket, r, c);
                    BanCo.end = BanCo.CheckEnd(r, c);//Kiểm tra xem trận đấu kết thúc chưa

                    if (BanCo.end == Player.Com)//Nếu máy thắng
                    {
                        BanCo.OnLose();//Khai báo sư kiện Lose
                        BanCo.OWinorLose();//Hiển thị 5 ô Lose.
                        btnStartMay.Content = "New game";
                        newgame = true;
                    }
                    else if (BanCo.end == Player.None)
                    {
                        BanCo.currPlayer = Player.Human;//Thiết lập lại lượt chơi
                        BanCo.OnComDanhXong();// Khai báo sự kiện người đánh xong
                    }
                }
            }
        }
Exemple #6
0
 //Hàm lấy thông tin 5 ô Win hoặc Lose
 public static void OWinorLose()
 {
     Node node = new Node();
     for (int i = 0; i < 5; i++)
     {
         node = OWin.GiaTri[i];
         DanhDau ddau = new DanhDau();
         ddau.Height = 40;
         ddau.Width = 40;
         ddau.Opacity = 100;
         ddau.HorizontalAlignment = 0;
         ddau.VerticalAlignment = 0;
         ddau.Margin = new Thickness(node.Column * length - 2, node.Row * length - 3, 0, 0);
         grdBanCo.Children.Add(ddau);
     }
 }
Exemple #7
0
        public void danh(object sender, RunWorkerCompletedEventArgs e)
        {
            if (currPlayer == Player.Com && end == Player.None)//Nếu lượt đi là máy và trận đấu chưa kết thúc
            {
                //Tìm đường đi cho máy
                eBoard.ResetBoard();
                LuongGia(Player.Com);//Lượng giá bàn cờ cho máy
                node = eBoard.GetMaxNode();//lưu vị trí máy sẽ đánh
                int r, c;
                r = node.Row; c = node.Column;
                board[r, c] = currPlayer; //Lưu loại cờ vừa đánh vào mảng
                DrawDataBoard(r, c, true, true); //Vẽ con cờ theo lượt chơi
                end = CheckEnd(r, c);//Kiểm tra xem trận đấu kết thúc chưa

                if (end == Player.Com)//Nếu máy thắng
                {
                    OnLose();//Khai báo sư kiện Lose
                    OWinorLose();//Hiển thị 5 ô Lose.
                }
                else if (end == Player.None)
                {
                    currPlayer = Player.Human;//Thiết lập lại lượt chơi
                    OnComDanhXong();// Khai báo sự kiện người đánh xong
                }
            }
        }