Пример #1
0
        public async Task <IActionResult> Edit(int id, [Bind("PositionID,PositionDescription")] PlayerPositions playerPositions)
        {
            if (id != playerPositions.PositionID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(playerPositions);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PlayerPositionsExists(playerPositions.PositionID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(playerPositions));
        }
    public void ChangeRounds()
    {
        preRoundTime = 3;
        gameTime     = 60;
        breakTime    = 10;
        trainTime    = 15;
        if (isRoundStart)
        {
            PlayerPositions playerPos = GetComponent <PlayerPositions>();

            playerPos.ResetFightPosition();

            preRound      = true;
            gameUI.alpha  = 1;
            breakUI.alpha = 0;
            trainUI.alpha = 0;
        }
        if (isBreakStart)
        {
            gameUI.alpha  = 0;
            trainUI.alpha = 0;
        }
        if (isTrainingStart)
        {
            gameUI.alpha  = 0;
            breakUI.alpha = 0;
            trainUI.alpha = 1;
        }
    }
        public void UpdatePlayerPosition(IPlayer player)
        {
            var newList = PlayerPositions.Where(x => x.Id != player.Id).ToList();

            newList.Add(player);
            PlayerPositions = newList;
        }
Пример #4
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // Window initilization
            Window.AllowUserResizing = false;
            Window.Title             = "S******d";

            // Device manager initilization
            deviceManager.IsFullScreen = false;
            deviceManager.PreferredBackBufferHeight = 768;
            deviceManager.PreferredBackBufferWidth  = 1024;
            deviceManager.ApplyChanges();

            // Game initilization
            Configuration.Init(this.Content);
            GameCursor.Init();
            GameCursor.CustomMouse = true;
            Deck.Init();
            Button.Init(GraphicsDevice);
            TextField.Init(GraphicsDevice);
            PlayerPositions.Init(GraphicsDevice);

            // Screen initilization
            Screens.ScreenManager.AddScreen(new Menu(GraphicsDevice));
            Screens.ScreenManager.AddScreen(new GameBoard(GraphicsDevice));
            Screens.ScreenManager.AddScreen(new SetupLocal(GraphicsDevice));
            Screens.ScreenManager.AddScreen(new SetupMultiplayer(GraphicsDevice));
            Screens.ScreenManager.GotoScreen("menu");

            this.TargetElapsedTime = TimeSpan.FromSeconds(1.0f / FPS);

            base.Initialize();
        }
Пример #5
0
 public Player(byte pSpeed, byte pPrecision, byte pDuel, PlayerPositions pPosition)
 {
     Name      = GetRandomName();
     Speed     = pSpeed;
     Precision = pPrecision;
     Duel      = pDuel;
     Position  = pPosition;
 }
Пример #6
0
 public Player(string pName, byte pSpeed, byte pPrecision, byte pDuel, PlayerPositions pPosition)
 {
     Name      = pName;
     Speed     = pSpeed;
     Precision = pPrecision;
     Duel      = pDuel;
     Position  = pPosition;
 }
Пример #7
0
        public AvailablePlayerAction(PlayerActions playerAction, PlayerPositions currentPosition, PlayerPositions playerPosition, Tile actionOnTile, IEnumerable <Meld> melds)
        {
            PlayerAction    = playerAction;
            CurrentPosition = currentPosition;
            PlayerPosition  = playerPosition;
            ActionOnTile    = actionOnTile;
            Melds           = melds;

            Priority = GetPriority();
        }
Пример #8
0
        public static int GetBetween(this PlayerPositions playerPosition, PlayerPositions currentPlayerPosition)
        {
            var between = (int)playerPosition - (int)currentPlayerPosition;

            if (between < 0)
            {
                between += 4;
            }

            return(between);
        }
Пример #9
0
        public async Task <IActionResult> Create([Bind("PositionID,PositionDescription")] PlayerPositions playerPositions)
        {
            if (ModelState.IsValid)
            {
                _context.Add(playerPositions);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(playerPositions));
        }
Пример #10
0
        public HistoryMove MoveCheckerToNewPlace(int currentCol
                                                 , int currentRow
                                                 , int nextCol
                                                 , int nextRow
                                                 , bool convertBackToChecker = false)
        {
            CheckerModel checker = PlayerPositions.Single(x => x.Column == currentCol && x.Row == currentRow);
            IEnumerable <LinkedList <CheckerModel> > availablePaths = CalculateAvailablePaths();
            LinkedList <CheckerModel> path = availablePaths.Where(x => x.Last.Value.Column == nextCol && x.Last.Value.Row == nextRow).OrderByDescending(x => x.Count).FirstOrDefault();
            bool isConvertedToQueen        = false;

            if (ShouldConvertToQueenByPathDuringTaking(path))
            {
                checker.BecomeAQueen();
                isConvertedToQueen = true;
            }
            CheckerModel newPosition          = _dataProvider.GetElementAtPosition(nextCol, nextRow);
            CheckerModel oldPositionedChecker = _dataProvider.GetElementAtPosition(currentCol, currentRow);

            if (convertBackToChecker)
            {
                oldPositionedChecker.DowngradeToChecker();
            }
            if (_pathCalculator.IsMoveToucheBoard(newPosition))
            {
                oldPositionedChecker.BecomeAQueen();
                isConvertedToQueen = true;
            }
            _dataProvider.StartTrackChanges();
            List <CheckerModel> itemsToTake = GetToTakeCheckers(availablePaths, nextCol, nextRow, checker);
            var historyMove = new HistoryMove(isConvertedToQueen);

            foreach (CheckerModel checkerElement in itemsToTake)
            {
                var element = new CheckerModel(checkerElement.Column, checkerElement.Row, PieceType.Checker, Side.Empty);
                historyMove.DeletedList.Add(new KeyValuePair <CheckerModel, CheckerModel>(checkerElement.Clone(), element.Clone()));
                _dataProvider.MoveCheckerToNewPosition(element, checkerElement.Column, checkerElement.Row);
            }
            historyMove.MovedFromTo = new KeyValuePair <CheckerModel, CheckerModel>(oldPositionedChecker.Clone(), newPosition.Clone());
            _dataProvider.MoveCheckerToNewPosition(oldPositionedChecker, nextCol, nextRow);
            _dataProvider.StopTrackChanges();

            return(historyMove);
        }
Пример #11
0
        public static PlayerPositions GetNextPosition(this PlayerPositions positions)
        {
            switch (positions)
            {
            case PlayerPositions.East:
                return(PlayerPositions.North);

            case PlayerPositions.North:
                return(PlayerPositions.West);

            case PlayerPositions.West:
                return(PlayerPositions.South);

            case PlayerPositions.South:
                return(PlayerPositions.East);

            default:
                throw new Exception("PlayerPosition not found");
            }
        }
Пример #12
0
        public void Join(Player player)
        {
            if (!IsBusy)
            {
                if (Players.Count < 4)
                {
                    foreach (PlayerPositions direction in Enum.GetValues(typeof(PlayerPositions)))
                    {
                        if (Players.All(q => q.PlayerPosition != direction))
                        {
                            player.SetDirection(direction);

                            if (Players.Count == 0)
                            {
                                player.IsDealer        = true;
                                _currentPlayerPosition = direction;
                            }

                            Players.Add(player);
                            player.PlayerWinable    += PlayerOnPlayerWinable;
                            player.PlayerActionable += PlayerOnPlayerActionable;
                            player.PlayerInitalWin  += PlayerOnPlayerInitalWin;
                            player.PlayerAction     += PlayerOnPlayerAction;
                            break;
                        }
                    }
                }


                if (Players.Count == 4)
                {
                    IsBusy = true;
                    Reset();

                    if (GameStarted != null)
                    {
                        GameStarted(this, null);
                    }
                }
            }
        }
Пример #13
0
        private void NotificationFromDataAdapter(List <CheckerModel> added, List <CheckerModel> deleted, List <CheckerModel> modified)
        {
            var addedForPlayer = new List <CheckerModel>();

            foreach (var addedModel in added.Where(x => x.Side == Side))
            {
                PlayerPositions.Add(addedModel);
                addedForPlayer.Add(addedModel);
            }

            var deletedFromForPlayer = new List <CheckerModel>();

            foreach (var deletedModel in deleted.Where(x => x.Side == Side))
            {
                CheckerModel toRemove = PlayerPositions.Single(x => x.Column == deletedModel.Column && x.Row == deletedModel.Row);
                PlayerPositions.Remove(toRemove);
                deletedFromForPlayer.Add(toRemove);
            }

            modified = modified.Where(x => x.Side == Side).ToList();

            NotificationAction?.Invoke(addedForPlayer, deletedFromForPlayer, modified);
        }
 public PlayerPositions InsertPlayerPosition(PlayerPositions playerPosition)
 {
     return(_servicePlayerPosition.Insert(playerPosition));
 }
Пример #15
0
 public void AddPlayerPosition(IPlayer player)
 {
     PlayerPositions.Add(player);
 }
Пример #16
0
 public void Clear()
 {
     PlayerPositions.Clear();
     Hits.Clear();
     Hearts.Clear();
 }
Пример #17
0
 public int GetPossibleMovementsCount()
 {
     return(PlayerPositions.Sum(position => position.PossibleMovementElements.Count));
 }
Пример #18
0
        public int GetQueensCount()
        {
            int counter = PlayerPositions.Count(playerPosition => playerPosition.Type == PieceType.Queen);

            return(counter);
        }
Пример #19
0
 private Player GetPlayer(PlayerPositions position)
 {
     return(Players.FirstOrDefault(q => q.PlayerPosition == position));
 }
Пример #20
0
        public int GetSimpleCheckersCount()
        {
            int counter = PlayerPositions.Count(playerPosition => playerPosition.Type == PieceType.Checker);

            return(counter);
        }
Пример #21
0
 public void SetDirection(PlayerPositions positions)
 {
     PlayerPosition = positions;
 }