예제 #1
0
 public GameController(IBonusController bonusController,
                       IFieldController fieldController,
                       IMessageBinder messageBinder,
                       IFieldBoundsApplyService fluidFiledApplyService,
                       GameConfigModel gameConfigModel)
 {
     BonusController        = bonusController;
     FieldController        = fieldController;
     FluidFiledApplyService = fluidFiledApplyService;
     GameConfigModel        = gameConfigModel;
     MessageBinder          = messageBinder;
 }
예제 #2
0
 public BonusController(GameFieldModel fieldModel,
                        GameConfigModel configModel,
                        IMessageSender messageSender,
                        IFieldDimensionModel fieldDimensionModel,
                        IFieldController fieldController,
                        EntityMapperService mapperService)
 {
     FieldModel          = fieldModel;
     ConfigModel         = configModel;
     MessageSender       = messageSender;
     FieldDimensionModel = fieldDimensionModel;
     FieldController     = fieldController;
     MapperService       = mapperService;
 }
예제 #3
0
 public GomokuGame(IRule rule, Team firstTurn = Team.Blue, int fieldSize = 19, int winLength = 5)
 {
     FieldSize = fieldSize;
     WinLength = winLength;
     Field     = new Team[FieldSize][];
     for (int i = 0; i < FieldSize; ++i)
     {
         Field[i] = new Team[FieldSize];
     }
     _controller = new FieldController(Field);
     _checker    = new Checker(_controller, WinLength);
     PlayerTurn  = firstTurn;
     TurnNumber  = 0;
     _rule       = rule;
 }
예제 #4
0
        //public NaiveStrategy(GameData gd, Team team, int winLength, int maxDepth = 6)
        public NaiveStrategy(int fieldSize, Team team, int winLength, int maxDepth = 6)
        {
            int size = fieldSize;

            _internalField = new Team[size][];
            for (int i = 0; i < size; ++i)
            {
                _internalField[i] = new Team[size];
            }

            _controller = new FieldController(_internalField);
            _checker    = new Checker(_controller, winLength);

            _team  = team;
            _depth = maxDepth;
        }
        // Should be removed, used only in debugging
        public string RenderAsString(IFieldController fieldController)
        {
            int side = fieldController.FieldSize + 2;

            if (_sb == null || _sb.Length < side * (side + 1))
            {
                Init(side - 2);
            }

            for (int i = 0; i < side - 2; ++i)
            {
                for (int j = 0; j < side - 2; ++j)
                {
                    _sb[(i + 1) * (side + 1) + j + 1] = _teamChars[fieldController.GetPos(j, i)];
                }
            }
            return(_sb.ToString());
        }
예제 #6
0
 public Checker(IFieldController controller, int winLength)
 {
     _controller = controller;
     WinLength   = winLength;
 }