コード例 #1
0
        public void processMagnitude(IMagnitude magnitude)
        {
            var newCoordinates       = currentGame.currentPlayer.currentCoordinate;
            var magnitudeCoordinates = magnitude.returnValues();

            newCoordinates.coordinateX += magnitudeCoordinates.coordinateX;
            newCoordinates.coordinateY += magnitudeCoordinates.coordinateY;
            if (newCoordinates.coordinateX > currentGame.map.mapArray.GetUpperBound(0))
            {
                newCoordinates.coordinateX = newCoordinates.coordinateX - currentGame.map.mapArray.GetUpperBound(0);
            }

            if (newCoordinates.coordinateX < currentGame.map.mapArray.GetLowerBound(0))
            {
                newCoordinates.coordinateX = currentGame.map.mapArray.GetUpperBound(0) - newCoordinates.coordinateX;
            }

            if (newCoordinates.coordinateY > currentGame.map.mapArray.GetUpperBound(1))
            {
                newCoordinates.coordinateY = newCoordinates.coordinateY - currentGame.map.mapArray.GetUpperBound(1);
            }
            if (newCoordinates.coordinateY < currentGame.map.mapArray.GetLowerBound(1))
            {
                newCoordinates.coordinateY = currentGame.map.mapArray.GetUpperBound(1) - newCoordinates.coordinateY;
            }



            if (!checkLosingConditions(newCoordinates))
            {
                currentGame.currentPlayer.updateCoordinate(newCoordinates);
            }
            else
            {
                removeLosingPlayer();
                if (checkWinningConditions())
                {
                    currentGame.hasGameEnded = true;
                }
            }
        }
コード例 #2
0
 public void removeMagnitude(IMagnitude magnitude)
 {
     magnitudes.Remove(magnitude);
 }
コード例 #3
0
 public void addMagnitude(IMagnitude magnitude)
 {
     magnitudes.Add(magnitude);
 }