示例#1
0
        public void Start()
        {
            isStarted = true;
            Position movement = new Position(0, 0);

            while (isStarted == true)
            {
                BoundariesChecker.CheckBoundaries(Snake.SnakeBody.Head.Value, movement);
                Snake.Move(movement);
                if (Snake.CheckSelfCanibalism())
                {
                    Console.Clear();
                    ConsoleHelper.Write(new Position(0, 0), "Game over! You ate yourself?????");
                    isStarted = false;
                    break;
                }

                if (Console.KeyAvailable)
                {
                    var key = Console.ReadKey(false).Key;
                    movement = ReadUserInput.GetMovement(key, movement);
                }
                Thread.Sleep(40);
                gameItems.ForEach(i => i.Draw());
            }
        }
        public void Start()
        {
            this.isStarted = true;
            Position movementPosition = new Position(0, 0);

            while (isStarted)
            {
                BoundariesChecker.CheckPosition(this.Snake.SnakeBody.Head.Value, movementPosition);
                this.Snake.Move(movementPosition);

                if (this.Snake.CheckSelfCanibalism())
                {
                    Console.Clear();
                    ConsoleHelper.Write(new Position(0, 0), $"Gmae Over! Your total score is {this.Snake.SnakeBody.Count}");
                    this.isStarted = false;
                    break;
                }

                if (Console.KeyAvailable)
                {
                    var key = Console.ReadKey(false).Key;
                    movementPosition = ReadUserInput.GetMovement(key, movementPosition);
                }

                Thread.Sleep(50);
                this.gameItems.ForEach(x => x.Draw());
            }
        }
        public void Grow(Position position)
        {
            var reverse     = new Position(position.X * -1, position.Y * -1);
            var oldPosition = this.SnakeBody.Tail.Value;

            var newHead = new Position(oldPosition.X, oldPosition.Y);

            newHead.ChangePosition(reverse);
            BoundariesChecker.CheckPosition(newHead, reverse);
            this.SnakeBody.AddLast(newHead);
        }
示例#4
0
 void Awake()
 {
     _score      = 0;
     _actualLife = startinglLife;
     _bc         = new BoundariesChecker(transform, xBoundary, yBoundary);
     _sc         = new ShipController(this);
     _rb         = GetComponent <Rigidbody2D>();
     EventsManager.SubscribeToEvent(EventType.SHOWING_INTERACTIVE_CONTENT, OnInteractiveContentShown);
     EventsManager.SubscribeToEvent(EventType.CLOSED_INTERACTIVE_CONTENT, OnInteractiveContentClosed);
     EventsManager.SubscribeToEvent(EventType.ASTEROID_HIT, OnAsteroidHit);
 }
        public void Grow(Position position)
        {
            var reverse     = new Position(position.X * -1, position.Y * -1);
            var oldPosition = SnakeBody.Tail.Value;

            var newHead = new Node(new Position(oldPosition.X, oldPosition.Y));

            newHead.Value.ChangePosition(reverse);
            BoundariesChecker.CheckBoundaries(newHead.Value, reverse);
            SnakeBody.AddLast(newHead);
        }
示例#6
0
 void Start()
 {
     _bc = new BoundariesChecker(transform, xBoundary, yBoundary);
 }
示例#7
0
 public Range(T upper, T lower, BoundariesChecker boundariesChecker)
 {
     this.upper             = upper;
     this.lower             = lower;
     this.boundariesChecker = boundariesChecker;
 }