Ejemplo n.º 1
0
 public void Reset()
 {
     thuTu = 0;
     GiaTri = new Node[10];
     for (int i = 0; i < 10; i++)
     {
         GiaTri[i] = new Node();
     }
 }
Ejemplo n.º 2
0
 public cls5OWin()
 {
     GiaTri = new Node[10];
     for (int i = 0; i < 10; i++)
     {
         GiaTri[i] = new Node();
     }
     thuTu = 0;
 }
Ejemplo n.º 3
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];
        }
Ejemplo n.º 4
0
          private void AI_play(object sender, RunWorkerCompletedEventArgs e) //Máy đánh
         {
             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
                 {
                     OnWin();//Khai báo sư kiện 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
                 }
             }
         }
Ejemplo n.º 5
0
 public void Add(Node n)
 {
     GiaTri[thuTu] = n;
     thuTu++;
 }