예제 #1
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];
        }
예제 #2
0
 // chơi auto
 public Point AutoPlay()
 {
     Node node = new Node();
     eBoard.ResetBoard();
     LuongGia(CellValues.Player2);//Lượng giá bàn cờ cho máy
     node = eBoard.GetMaxNode();//lưu vị trí máy sẽ đánh
     int r = node.Row;
     int c = node.Column;
     Cells[r, c] = ActivePlayer; //Lưu loại cờ vừa đánh vào mảng
     return new Point(r, c);
 }