Esempio n. 1
0
        private void GetingOutSideItem()
        {
            IBoard <IItem, int> board = new BasicBoard(360);

            IItem        item  = new BasicEnemy(range: 5);
            IPoint <int> point = new BasicPoint(1);

            board.Put(item, point);
            board.Get(new BasicPoint(360), new BasicWeapon());
        }
Esempio n. 2
0
        public void GetFreeAreaLessOneItem()
        {
            IBoard <IItem, int> board = new BasicBoard(4);

            IItem        item  = new BasicEnemy(range: 2);
            IPoint <int> point = new BasicPoint(1);

            board.Put(item, point);

            Assert.AreEqual(1, board.FreePointsTo(item).Length);
        }
Esempio n. 3
0
        public void GetItemInsideRange()
        {
            IBoard <IItem, int> board = new BasicBoard();

            IItem        item  = new BasicEnemy(range: 5);
            IPoint <int> point = new BasicPoint(360);

            board.Put(item, point);

            Assert.AreSame(item, board.Get(new BasicPoint(2), new BasicWeapon()));
        }
Esempio n. 4
0
        public void MustBeAFullBoard()
        {
            IBoard <IItem, int> board = new BasicBoard(4);

            IItem        item  = new BasicEnemy(range: 4);
            IPoint <int> point = new BasicPoint(1);

            board.Put(item, point);

            Assert.AreEqual(0, board.FreePointsTo(item).Length);
        }
Esempio n. 5
0
        public void GetItemAtSamePosition()
        {
            IBoard <IItem, int> board = new BasicBoard();

            IItem        item  = new BasicEnemy(5);
            IPoint <int> point = new BasicPoint(1);

            board.Put(item, point);

            Assert.AreSame(item, board.Get(point, new BasicWeapon()));
        }
Esempio n. 6
0
 public static LuaBoard Create(BasicBoard board)
 {
     int size = board.size;
     LuaBoard b = new LuaBoard(size);
     b.ResetWithSize(size);
     for (int x = 0; x < size; x++)
     {
         for (int y = 0; y < size; y++)
         {
             b.tiles[x + y * size].SetState(board.GetTileState(x, y));
         }
     }
     //MoonSharp.Interpreter.
     return b;
 }
Esempio n. 7
0
    /// <summary>
    /// Starts an asynchronous prospecting session. It will continue using
    /// the information stored within itself until aborted.
    /// </summary>
    /// <returns></returns>
    public IEnumerator BeginProspectingSession(BasicBoard board)
    {
        SetBoardState(board);
        yield return new WaitForSeconds(1.0f);
        DynValue val = CallLuaFunction("onCalculateBestMove");
        if(val == null)
        {
            Debug.LogWarning("onCalculateBestMove not implemented in script!");
        }
        int x = 0;
        int y = 0;

        if (val.Type == DataType.Table)
        {

            //
            if (val.Table.Get("x").Type == DataType.Number)
            {
                x = (int)val.Table.Get("x").Number;
            }
            else if (val.Table.Get(1).Type == DataType.Number)
            {
                x = (int)val.Table.Get(1).Number;
            }

            //
            if (val.Table.Get("y").Type == DataType.Number)
            {
                y = (int)val.Table.Get("y").Number;
            }
            else if (val.Table.Get(2).Type == DataType.Number)
            {
                y = (int)val.Table.Get(2).Number;
            }

        }
        chosenLocation = new Point2D(x, y);
    }
Esempio n. 8
0
 public static BasicBoard Create(int size = 8)
 {
     BasicBoard b = new BasicBoard(size);
     b.ResetWithSize(size);
     return b;
 }
Esempio n. 9
0
        public void GetAllFreeArea()
        {
            IBoard <IItem, int> board = new BasicBoard(4);

            Assert.AreEqual(4, board.FreePointsTo(new BasicEnemy(range: 0)).Length);
        }
Esempio n. 10
0
 private void SetBoardState(BasicBoard board)
 {
     currentState = LuaBoard.Create(board);
     UserData.RegisterType<LuaBoard>();
     UserData.RegisterType<BasicBoard.Score>();
     script.Globals["ai", "currentBoard"] = UserData.Create(currentState);
 }