예제 #1
0
        private void Late()
        {
            foreach (var other in Check)
            {
                if (other?.Associate == default)
                {
                    continue;
                }

                if (!Active.Contains(other))
                {
                    OnLeave.Invoke(other.Associate as PhysicsComponent);
                }
            }

            Check.Clear();

            foreach (var active in Active)
            {
                if (active?.Associate == default)
                {
                    continue;
                }

                Check.Add(active);
            }
        }
예제 #2
0
        /// <summary>
        /// Called when a move is made
        /// </summary>
        /// <param name="pieceEliminated"> True if the move eliminate's the opponent's piece </param>
        /// <param name="eliminatedObject"> Opponent's piece that has been eliminated, otherwise null </param>
        /// <param name="piece"> Piece that was moved </param>
        /// <param name="originalPos"> Original Position of the piece ("x z")</param>
        /// <param name="newPos"> New Position of the Piece ("x z")</param>
        public void Move(bool pieceEliminated, GameObject eliminatedObject, GameObject piece, string originalPos, string newPos)
        {
            Eliminated.Add(pieceEliminated);

            if (pieceEliminated)
            {
                EliminatedObjects.Add(eliminatedObject);
            }

            else
            {
                EliminatedObjects.Add(null);
            }

            PieceMoved.Add(piece);
            PreviousXPosition.Add((int)char.GetNumericValue(originalPos[0]));
            PreviousZPosition.Add((int)char.GetNumericValue(originalPos[2]));
            CurrentXPosition.Add((int)char.GetNumericValue(newPos[0]));
            CurrentZPosition.Add((int)char.GetNumericValue(newPos[2]));

            // by default, pawnPromoted = false
            PawnPromoted.Add(false);

            // by default, check = false
            Check.Add(false);

            Count++;
        }
예제 #3
0
        public void Run()
        {
            int dimentionZero = 0;
            int dimentionOne  = 0;

            Refresh();
            Grid();

            while (true)
            {
                PrintPlayerInfo("           ");
                PointerVisualiation(ConsoleColor.Black, dimentionZero, dimentionOne);
                if (Console.KeyAvailable)
                {
                    var keyInfo = Console.ReadKey(true);
                    if (keyInfo.Key.Equals(ConsoleKey.UpArrow))
                    {
                        if (dimentionZero > 0)
                        {
                            dimentionZero--;
                        }
                    }
                    if (keyInfo.Key.Equals(ConsoleKey.DownArrow))
                    {
                        dimentionZero++;
                    }
                    if (keyInfo.Key.Equals(ConsoleKey.LeftArrow))
                    {
                        dimentionOne--;
                    }
                    if (keyInfo.Key.Equals(ConsoleKey.RightArrow))
                    {
                        dimentionOne++;
                    }
                    if (keyInfo.Key.Equals(ConsoleKey.Spacebar))
                    {
                        if (!CardFace[dimentionZero, dimentionOne].IsVisible)
                        {
                            Check.Add(new CardPosition(dimentionZero, dimentionOne));
                        }
                    }
                    if (keyInfo.Key.Equals(ConsoleKey.Escape))
                    {
                        foreach (var position in this.Check)
                        {
                            this.CardBack[position.X, position.Y].IsVisible = true;
                            this.CardFace[position.X, position.Y].IsVisible = false;
                        }
                        GameManager.SaveGame(this.CardBack, this.CardFace, this.Player, this.Check, this.Level);
                        GameManager.ExitGame();
                    }
                }
                dimentionZero %= CardFace.GetLength(0);
                dimentionOne  %= CardFace.GetLength(1);
                PointerVisualiation(ConsoleColor.Yellow, dimentionZero, dimentionOne);

                if (Check.Count >= 1)
                {
                    CheckForEquals();
                }
                System.Threading.Thread.Sleep(200);
            }
        }