private void UpdateTries()
        {
            NumberOfTries = (int)Mathf.Clamp(NumberOfTries + 1, 0, MaxNumberOfTries);
            GameStartModel startModel = new GameStartModel(RemainingTries);

            Messenger.Broadcast <IGameStartModel>(Signals.UpdateAttackTries(), startModel);
        }
Ejemplo n.º 2
0
        public IActionResult StartGame(GameStartModel model)
        {
            if (HybridSupport.IsElectronActive && !_isInitialized)
            {
                ElectronNET.API.Electron.IpcMain.OnSync("get-next-move", (args) =>
                {
                    var move = JsonConvert.DeserializeObject <NextMoveModel>(args.ToString());

                    var nextMove = _uciConnector.GetNextMoveByFen(move.Fen, move.Depth);

                    var from       = nextMove.Substring(0, 2);
                    var to         = nextMove.Substring(2, 2);
                    char?promotion = null;

                    if (nextMove.Length == 5)
                    {
                        promotion = nextMove.Last();
                    }

                    var response = new
                    {
                        engineMove = new {
                            from,
                            to,
                            promotion
                        }
                    };

                    return(JsonConvert.SerializeObject(response));
                });

                _isInitialized = true;
            }

            var gameModel = new GameConfigModel();

            gameModel.Depth = model.SetDepth ? model.Depth : model.SelectedLevel;
            if (model.StartColor == "random")
            {
                gameModel.StartColor = (new Random().Next() & 1) == 0 ? "w" : "b";
            }
            else
            {
                gameModel.StartColor = model.StartColor;
            }

            return(View(gameModel));
        }
        private void StartGame(int stage = 0)
        {
            _stage = stage;
            _numberOfValidTries = 0;
            NumberOfTries       = 0;
            int triesIndex = Mathf.Clamp(_stage, 0, Settings.TriesModels.Length - 1);
            IGameControllerTriesModel triesModel = Settings.TriesModels[triesIndex];

            MaxNumberOfTries = Random.Range(triesModel.Tries, triesModel.Tries + triesModel.TriesRange);

            Messenger.AddListener(Signals.StartAttack(), UpdateTries);
            Messenger.AddListener(Signals.AttackSucces(), AttackSuccesHandler);
            Messenger.AddListener(Signals.AttackFailed(), AttackFailedHandler);

            GameStartModel model = new GameStartModel(RemainingTries);

            Messenger.Broadcast <IGameStartModel>(Signals.UpdateAttackTries(), model);
            Messenger.Broadcast(Signals.GameStartPhase());
        }
Ejemplo n.º 4
0
        public IActionResult Index()
        {
            var model = new GameStartModel();

            model.Colors = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Value = "w",
                    Text  = _localizationService.GetResource("colors.white")
                },
                new SelectListItem
                {
                    Value = "b",
                    Text  = _localizationService.GetResource("colors.black")
                },
                new SelectListItem
                {
                    Value = "random",
                    Text  = _localizationService.GetResource("colors.random")
                }
            };

            model.Levels = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Value = "1",
                    Text  = "1"
                },
                new SelectListItem
                {
                    Value = "2",
                    Text  = "2"
                },
                new SelectListItem
                {
                    Value = "3",
                    Text  = "3"
                },
                new SelectListItem
                {
                    Value = "4",
                    Text  = "4"
                },
                new SelectListItem
                {
                    Value = "6",
                    Text  = "5"
                },
                new SelectListItem
                {
                    Value = "8",
                    Text  = "6"
                },
                new SelectListItem
                {
                    Value = "10",
                    Text  = "7"
                },
                new SelectListItem
                {
                    Value = "12",
                    Text  = "8"
                }
            };

            return(View(model));
        }