Inheritance: AbstractInitializer
        public PlayScene CreatePlayScene()
        {
            PlayScene       playScene = new PlayScene();
            GameInitializer gI        = new GameInitializer(Helper.CurrentGame, Helper.CurrentGame.Content);

            playScene.BackgroundTextureKey        = "play";
            playScene.AllTheSpritesWithinTheScene = new List <IBaseSprite>();
            playScene.Player     = new PlayerSprite();
            playScene.Player     = gI.CreatePlayer();
            Helper.currentPlayer = playScene.Player;
            playScene.AllTheSpritesWithinTheScene.Add(playScene.Player);
            playScene.Collectables = new List <Collectable>();
            playScene.Collectables = gI.CreateCollectables(Helper.random.Next(10, 20));
            playScene.AllTheSpritesWithinTheScene.AddRange(playScene.Collectables);
            playScene.AllSpawnPoints = new List <SpawnPoint>();
            playScene.AllSpawnPoints = gI.CreateSpawnPoints();
            playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllSpawnPoints);
            playScene.AllDespawnPoints = new List <DespawnPoint>();
            playScene.AllDespawnPoints = gI.CreateDespawnPoints();
            playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllDespawnPoints);
            playScene.AllEnemies = new Queue <EnemySprite>();
            playScene.AllEnemies = gI.CreateEnemies();
            playScene.AllTheSpritesWithinTheScene.AddRange(playScene.AllEnemies);


            return(playScene);
        }
    // Use this for initialization
    void Start()
    {
        instance = this;
        //SymbolHandler.graphModel = graphModel;

        Symbol square   = SymbolHandler.fromName("Square");
        Symbol circle   = SymbolHandler.fromName("Circle");
        Symbol star     = SymbolHandler.fromName("Star");
        Symbol diamond  = SymbolHandler.fromName("Diamond");
        Symbol squiggle = SymbolHandler.fromName("Squiggle");
        Symbol triangle = SymbolHandler.fromName("Triangle");

        SymbolHandler.fromName("Door").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Bed").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Dresser").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Sun").setHoverPrefab(sunPrefab);
        SymbolHandler.fromName("Floor Lamp").setHoverPrefab(lightPrefab);
        SymbolHandler.fromName("House").setHoverPrefab(wallBuilderPrefab);
        SymbolHandler.fromName("Chair").setHoverPrefab(chairPrefab);

        square.setHoverPrefab(squareHoverPrefab);
        circle.setHoverPrefab(circleHoverPrefab);
        star.setHoverPrefab(starHoverPrefab);
        diamond.setHoverPrefab(diamondHoverPrefab);
        squiggle.setHoverPrefab(squiggleHoverPrefab);
        triangle.setHoverPrefab(triangleHoverPrefab);

        foreach (GameObject go in props)
        {
            PropHandler.register(go);
        }

        startPython();
        StartCoroutine(SetupServer());
    }
示例#3
0
        public void Test1()
        {
            var game       = new GameInitializer(fourPlayers.Keys);
            var gameId     = Guid.NewGuid();
            var scoreBoard = game.StartGame(gameId);

            scoreBoard.ResetScores();

            var round = new TarokRound
            {
                LeadPlayer       = jan.PlayerId,
                SupportingPlayer = erik.PlayerId,
                Game             = GameType.Ena,
                Won             = true,
                ScoreDifference = 15
            };

            round.Modifiers.Add(new Modifier(
                                    ModifierType.Trula,
                                    TeamModifier.Playing,
                                    announced: true
                                    ));

            scoreBoard.ApplyTarokRound(round);

            Assert.True(scoreBoard.Scores[jan.PlayerId].Score == 65);
            Assert.True(scoreBoard.Scores[erik.PlayerId].Score == 65);
        }
示例#4
0
        public void Test18()
        {
            var game       = new GameInitializer(fourPlayers.Keys);
            var gameId     = Guid.NewGuid();
            var scoreBoard = game.StartGame(gameId);

            scoreBoard.ResetScores();

            var round = new KlopRound
            {
                Game = GameType.Klop,
                Won  = false
            };

            round.KlopScores.Add(jan.PlayerId, new PlayerScore(-1));
            round.KlopScores.Add(erik.PlayerId, new PlayerScore(-10));
            round.KlopScores.Add(nejc.PlayerId, new PlayerScore(-30));
            round.KlopScores.Add(luka.PlayerId, new PlayerScore(-30));

            scoreBoard.ApplyTarokRound(round);

            Assert.True(scoreBoard.Scores[jan.PlayerId].Score == 0);
            Assert.True(scoreBoard.Scores[erik.PlayerId].Score == -10);
            Assert.True(scoreBoard.Scores[nejc.PlayerId].Score == -30);
            Assert.True(scoreBoard.Scores[luka.PlayerId].Score == -30);

            Assert.True(scoreBoard.Scores[jan.PlayerId].RadelcCount - scoreBoard.Scores[jan.PlayerId].UsedRadelcCount == 1);
            Assert.True(scoreBoard.Scores[erik.PlayerId].RadelcCount - scoreBoard.Scores[erik.PlayerId].UsedRadelcCount == 1);
            Assert.True(scoreBoard.Scores[nejc.PlayerId].RadelcCount - scoreBoard.Scores[nejc.PlayerId].UsedRadelcCount == 1);
            Assert.True(scoreBoard.Scores[luka.PlayerId].RadelcCount - scoreBoard.Scores[luka.PlayerId].UsedRadelcCount == 1);
        }
示例#5
0
        public void Test6()
        {
            var game       = new GameInitializer(fourPlayers.Keys);
            var gameId     = Guid.NewGuid();
            var scoreBoard = game.StartGame(gameId);

            scoreBoard.ResetScores();
            scoreBoard.AddRadelc();
            var round = new TarokRound
            {
                LeadPlayer       = jan.PlayerId,
                SupportingPlayer = luka.PlayerId,
                Game             = GameType.Ena,
                Won             = true,
                ScoreDifference = 20
            };

            round.Modifiers.Add(new Modifier
                                (
                                    ModifierType.PagatUltimo,
                                    TeamModifier.NonPlaying,
                                    announced: true,
                                    contra: Contra.Re
                                ));

            scoreBoard.ApplyTarokRound(round);

            Assert.True(scoreBoard.Scores[jan.PlayerId].Score == -300);
            Assert.True(scoreBoard.Scores[luka.PlayerId].Score == -300);
            Assert.True(scoreBoard.Scores[jan.PlayerId].RadelcCount - scoreBoard.Scores[jan.PlayerId].UsedRadelcCount == 0);
        }
示例#6
0
        public void Test14()
        {
            var game       = new GameInitializer(fourPlayers.Keys);
            var gameId     = Guid.NewGuid();
            var scoreBoard = game.StartGame(gameId);

            scoreBoard.ResetScores();

            var round = new TarokRound
            {
                Game             = GameType.Ena,
                LeadPlayer       = jan.PlayerId,
                SupportingPlayer = luka.PlayerId,
                Won             = true,
                ScoreDifference = 10,
                MondFangPlayer  = luka.PlayerId,
                PagatFangPlayer = erik.PlayerId
            };

            scoreBoard.ApplyTarokRound(round);

            Assert.True(scoreBoard.Scores[jan.PlayerId].Score == 40);
            Assert.True(scoreBoard.Scores[luka.PlayerId].Score == 20);
            Assert.True(scoreBoard.Scores[erik.PlayerId].Score == -25);
        }
示例#7
0
        private void OpenProject(string pathToProject)
        {
            try
            {
                GameInitializer.LoadProject(pathToProject);
                MessageBox.Show(this, "Project loaded", "Done");
            }
            catch (Exception ex)
            {
                switch (ex)
                {
                case LoadException _:
                case PreprocessorException _:
                    Logger.Warning(ex, "Load failed");
                    MessageBoxes.LoadFailedExceptionBox(ex);
                    break;

                case TargetInvocationException tie
                    when tie.InnerException is ValidationFailedException vfe:
                    Logger.Warning(ex, "Validation failed");
                    MessageBoxes.LoadFailedExceptionBox(vfe);
                    break;

                default: throw;
                }
            }
        }
        public void Throw_InvalidMapException_WhenTryToLoad_MapWithWrongPath()
        {
            const string incorrectPath = "incorrect path";
            Action       act           = () => GameInitializer.LoadGameWithSpecifiedMapWriterFromFile(incorrectPath, _mapWriter);

            act.ShouldThrow <InvalidMapException>().WithMessage($"There is no map with this path: {incorrectPath}");
        }
示例#9
0
        public static void OnAssemblyLoaded(string path)
        {
            var     settings = GameInitializer.GetJSONSettingPaths(GameInitializer.NAMESPACE + ".MenuFile");
            JObject jObject  = new JObject();

            foreach (var info in settings)
            {
                try
                {
                    foreach (var jsonNode in info.Value)
                    {
                        try
                        {
                            jObject.Merge(JsonConvert.DeserializeObject <JObject>(File.ReadAllText(info.Key + "/" + jsonNode)), new JsonMergeSettings()
                            {
                                MergeArrayHandling = MergeArrayHandling.Union, MergeNullValueHandling = MergeNullValueHandling.Ignore, PropertyNameComparison = StringComparison.InvariantCultureIgnoreCase
                            });
                        }
                        catch (Exception ex)
                        {
                            APILogger.LogError(ex, "Error loading settings node " + jsonNode);
                        }
                    }
                }
                catch (Exception ex)
                {
                    APILogger.LogError(ex, "Error loading settings file " + info.Key + " values " + string.Join(", ", info.Value.ToArray()));
                }
            }

            LoadedMenus = JSON.DeserializeString(JsonConvert.SerializeObject(jObject));
        }
示例#10
0
        static void Main(string[] args)
        {
            #region Initilize Classes
            using var context = new LudoGameContext();

            var loadSavedGame = false;
            var gUI           = new RunGUI();
            var game          = new GameInitializer();
            var gameMotor     = new GameMotor();
            game.GameBoard.PopulateBoard();
            #endregion
            var  loadGameAnswer = "";
            bool validChoice    = false;
            LoadSavedGameOrCreateNewGame(context, ref loadSavedGame, gUI, game, ref loadGameAnswer, ref validChoice);
            Console.Clear();

            bool gameHasEnd = false;
            while (gameHasEnd == false)
            {
                gameHasEnd = PlayerTurn(gUI, game, gameMotor, gameHasEnd);
                Console.Clear();

                var  exitGameAnswer    = "";
                bool validChoiceInGame = false;
                ContinueOrExit(context, loadSavedGame, game, ref exitGameAnswer, ref validChoiceInGame);
                Console.Clear();
            }
        }
示例#11
0
    public void AddBridgeBuilt()
    {
        _bridgesBuilt++;
        int index = 0;

        if (_myManager is AICityManager)
        {
            index = 1;
        }
        Debug.Log(index);
        GameInitializer.SetBridgeActive(index);

        if (_bridgesBuilt <= Glob.AmountOfBridgesNeededToWin && _myManager is PlayerCityManager)
        {
            GameInitializer.AddSocializerScore(30);
        }
        if (_bridgesBuilt >= Glob.AmountOfBridgesNeededToWin)
        {
            if (GameInitializer.GetNextCity(this).GetBridgesBuilt() >= Glob.AmountOfBridgesNeededToWin)
            {
                GameInitializer.GetCameraManager().MoveCameraTo(new Vector3(53, 6, 19), Glob.CameraBuildingZoomTime);
                UIHandler.ShowNotification("Through combined efforts, a bridge connecting both cities has been built. The cities are now at peace, and are even thinking of merging to improve the quality of life for everyone.");
                GameInitializer.EndGame(true);
            }
        }
    }
示例#12
0
        public void Test19()
        {
            var game       = new GameInitializer(fourPlayers.Keys);
            var gameId     = Guid.NewGuid();
            var scoreBoard = game.StartGame(gameId);

            scoreBoard.ResetScores();

            var round = new TarokRound
            {
                Game      = GameType.Ena,
                Won       = false,
                Modifiers = new List <Modifier>()
                {
                    new Modifier(ModifierType.Valat, TeamModifier.NonPlaying, false)
                },
                ContraFactor     = Contra.Contra,
                ScoreDifference  = 35,
                LeadPlayer       = fourPlayers[nejc.PlayerId].PlayerId,
                SupportingPlayer = fourPlayers[luka.PlayerId].PlayerId,
            };

            scoreBoard.ApplyTarokRound(round);

            Assert.True(scoreBoard.Scores[jan.PlayerId].Score == 0);
            Assert.True(scoreBoard.Scores[erik.PlayerId].Score == 0);
            Assert.True(scoreBoard.Scores[nejc.PlayerId].Score == -500, "Nejc ima -500");
            Assert.True(scoreBoard.Scores[luka.PlayerId].Score == -500, "Luka ima -500");

            Assert.True(scoreBoard.Scores[jan.PlayerId].RadelcCount - scoreBoard.Scores[jan.PlayerId].UsedRadelcCount == 0);
            Assert.True(scoreBoard.Scores[erik.PlayerId].RadelcCount - scoreBoard.Scores[erik.PlayerId].UsedRadelcCount == 0);
            Assert.True(scoreBoard.Scores[nejc.PlayerId].RadelcCount - scoreBoard.Scores[nejc.PlayerId].UsedRadelcCount == 0);
            Assert.True(scoreBoard.Scores[luka.PlayerId].RadelcCount - scoreBoard.Scores[luka.PlayerId].UsedRadelcCount == 0);
        }
示例#13
0
    private void Start()
    {
        //Initializing list of lists
        playerCardPositions.Add(cardPositionsP1);
        playerCardPositions.Add(cardPositionsP2);
        cardVisuals.Add(cardVisualsP1);
        cardVisuals.Add(cardVisualsP2);


        gameInit = FindObjectOfType <GameInitializer>();
        players  = gameInit.players;

        for (int i = 0; i < players.Count; i++)
        {
            int MAX_CARDS_IN_HAND = players[i].handState.GetMaxCards();

            for (int k = 0; k < MAX_CARDS_IN_HAND; k++)
            {
                GameObject cardPlace = playerCardPositions[i][k];
                cardPlace.AddComponent <Selectable>();
                GameObject cardVisual = Instantiate(genericCardVisuals, cardPlace.transform); //This GameObject contains easy access to all the Sprites and Sprite Renderers
                cardVisuals[i].Add(cardVisual.GetComponent <CardVisuals>());
            }
            for (int k = 0; k < MAX_CARDS_IN_HAND; k++)
            {
                string     playerID = "Player" + (i + 1).ToString();
                Selectable s        = playerCardPositions[i][k].GetComponent <Selectable>();
                s.currentIndex = k;
                s.playerID     = playerID;
                s.previous     = playerCardPositions[i][(k - 1 + MAX_CARDS_IN_HAND) % MAX_CARDS_IN_HAND].GetComponent <Selectable>();
                s.next         = playerCardPositions[i][(k + 1) % MAX_CARDS_IN_HAND].GetComponent <Selectable>();
            }
        }
        UpdateCardVisuals();
    }
示例#14
0
    // Use this for initialization
    void Start()
    {
        _myCity = GameInitializer.GetCurrentCity();

        _allText[0]  = _welcome;
        _allText[1]  = _tileSelect;
        _allText[2]  = _buildFactory;
        _allText[3]  = _buildHouse;
        _allText[4]  = _explainHouse;
        _allText[5]  = _explainHappiness;
        _allText[6]  = _buildPark;
        _allText[7]  = _explainHappiness2;
        _allText[8]  = _endTurn;
        _allText[9]  = _enemy;
        _allText[10] = _startOfTurn;
        _allText[11] = _digsite;
        _allText[12] = _wonder;
        _allText[13] = _bridges;
        _allText[14] = _missiles;
        _allText[15] = _goodluck;
        _allText[16] = _exitButton;
        _allText[17] = _bye;

        GameInitializer.SetPaused(true);
        UIHandler.ShowNotification(_allText[_currentText]);
    }
示例#15
0
 public Missile Initialize()
 {
     _animator     = transform.parent.GetComponent <Animator>();
     _soundHandler = GameInitializer.GetSoundHandler();
     _soundHandler.PlaySound(SoundHandler.Sounds.MISSILEHIT);
     return(this);
 }
        public void After13HitShots_GameStopsPlaying()
        {
            //Battleship is Vertical at (1, 5)
            //First Destroyer is Horizontal at (4, 2)
            //Second Destroyer is Vertical at (8, 0)

            var random = new Mock <Random>();

            random.SetupSequence(x => x.Next(2)).Returns(0)
            .Returns(1)
            .Returns(0);
            random.SetupSequence(x => x.Next(10)).Returns(1).Returns(2).Returns(8);
            random.Setup(x => x.Next(6)).Returns(5);
            random.SetupSequence(x => x.Next(7)).Returns(4).Returns(0);

            var gameInitializer = new GameInitializer(random.Object);
            var game            = gameInitializer.CreateGame();

            string[] listOfHitShots = { "B5", "B6", "B7", "B8", "B9",
                                        "E2", "F2", "G2", "H2",
                                        "I0", "I1", "I2", "I3" };
            foreach (var shotCoordinates in listOfHitShots)
            {
                Assert.True(game.ShouldKeepPlaying());
                var shot = game.Shoot(shotCoordinates);
                Assert.NotNull(shot.HitShip);
            }
            Assert.False(game.ShouldKeepPlaying());
        }
示例#17
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(Glob.CancelButton) && !GameInitializer.GetPaused())
     {
         _notificationPanel.gameObject.SetActive(false);
     }
 }
示例#18
0
 void OnDestroy()
 {
     Instance = null;
     #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
     ConsoleWindow.Instance.Shutdown();
     #endif
 }
示例#19
0
    public void AddRelic()
    {
        _amountOfRelics++;
        UIHandler.ShowNotification("You currently have <b>" + _amountOfRelics + "/" + Glob.AmountOfRelicsNeededToWin + "</b> relics in your museum.");
        if (_amountOfRelics <= Glob.AmountOfRelicsNeededToWin && _myManager is PlayerCityManager)
        {
            GameInitializer.AddExplorerScore(6);
        }
        if (_amountOfRelics >= Glob.AmountOfRelicsNeededToWin)
        {
            CustomTile targetTile = _tileMap[0, 0];
            foreach (CustomTile tile in _tileMap)
            {
                if (tile.GetBuildingOnTile() is Digsite)
                {
                    targetTile = tile;
                    break;
                }
            }
            GameInitializer.GetCameraManager().MoveCameraTo(targetTile.transform.position + Glob.CameraBuildingOffset, Glob.CameraBuildingZoomTime); //TODO: Zoom in on a digsite
            if (_myManager is PlayerCityManager)
            {
                UIHandler.ShowNotification("Your city is swarmed with tourists, thanks to the " + _amountOfRelics + " relics you found and put in your museum. AIton's city doesn't stand a chance against this massive economical advantage.");
            }
            else
            {
                UIHandler.ShowNotification("AIton's city is swarmed with tourists, thanks to the " + _amountOfRelics + " relics he found and put in his museum. Your city doesn't stand a chance against this massive economical advantage, and thus you are forced to surrender.");
            }

            GameInitializer.EndGame(false, this);
        }
    }
示例#20
0
 public void HandleHappiness(CustomTile pTile, bool pHappy)
 {
     int[] tilePos = GetTilePosition(pTile);
     for (int x = 0; x < 3; x++)//Check all bordering tiles
     {
         for (int y = 0; y < 3; y++)
         {
             int xCoordinate = tilePos[0] - 1 + x;
             int yCoordinate = tilePos[1] - 1 + y;
             if ((xCoordinate < 0 || xCoordinate >= _tileMap.GetLength(0)) || (yCoordinate < 0 || yCoordinate >= _tileMap.GetLength(1)))
             {
                 continue;
             }
             CustomTile borderingTile = _tileMap[xCoordinate, yCoordinate];
             if (!borderingTile.GetIsHappy())
             {
                 borderingTile.SetIsHappy(pHappy);
                 if (borderingTile.GetBuildingOnTile() is House && _myManager is PlayerCityManager && pHappy)
                 {
                     GameInitializer.AddSocializerScore(2);
                 }
             }
         }
     }
 }
示例#21
0
 public void AddMissileLaunched()
 {
     _missilesLaunched++;
     if (_myManager is PlayerCityManager)
     {
         AICityManager AICity = GameInitializer.GetNextCity(this).GetManager() as AICityManager;
         AICity.ChangeAnimosity(50, GameInitializer.GetNextCity(this));
     }
     if (_myManager is PlayerCityManager)
     {
         GameInitializer.AddKillerScore(20);
     }
     if (_missilesLaunched >= Glob.AmountOfMissilesNeededToWin)
     {
         CustomTile targetTile = _tileMap[0, 0];
         foreach (CustomTile tile in _tileMap)
         {
             if (tile.GetBuildingOnTile() is MissileSilo)
             {
                 targetTile = tile;
                 break;
             }
         }
         GameInitializer.GetCameraManager().MoveCameraTo(targetTile.transform.position + Glob.CameraBuildingOffset, Glob.CameraBuildingZoomTime); //TODO: Zoom in on a digsite
         if (_myManager is PlayerCityManager)
         {
             UIHandler.ShowNotification("AIton has surrendered! He was too afraid of your firepower and decided to run away, leaving his city and inhabitants behind.");
         }
         else
         {
             UIHandler.ShowNotification("All of your inhabitants have fled your city after all the bombardments AIton launched at you. You have no choice but to surrender.");
         }
         GameInitializer.EndGame(false, this);
     }
 }
示例#22
0
    // SQUADRONS

    private static IEnumerator PrepareSquadrons()
    {
        GameInitializer.SetState(typeof(SquadsSyncCommand));

        if (ReplaysManager.Mode == ReplaysMode.Write)
        {
            foreach (var squad in SquadBuilder.SquadLists)
            {
                squad.SavedConfiguration["description"].str = squad.SavedConfiguration["description"].str.Replace("\n", "");

                GameController.SendCommand
                (
                    GenerateSyncSquadCommand
                    (
                        squad.PlayerNo.ToString(),
                        squad.PlayerType.ToString(),
                        Options.Title,
                        Options.Avatar,
                        squad.SavedConfiguration.ToString()
                    )
                );
            }
        }
        else if (ReplaysManager.Mode == ReplaysMode.Read)
        {
        }

        while (GameInitializer.AcceptsCommandType == typeof(SquadsSyncCommand) && GameInitializer.CommandsReceived < 2)
        {
            yield return(new WaitForEndOfFrame());
        }
    }
示例#23
0
 public static void AddGameReadyInvoker(GameInitializer invoker)
 {
     GameReadyInvokers.Add(invoker);
     foreach (var listener in GameReadyListeners)
     {
         invoker.AddGameReadyListener(listener);
     }
 }
示例#24
0
        public void TestIfPawnHaStartedIsFalseAndSetValueToTrue()
        {
            var gameInitializer = new GameInitializer();
            var pawn            = new Pawn(1, 1, "Blue");

            gameInitializer.IfNotStartedSetStartPosition(pawn);
            Assert.True(pawn.HasStarted);
        }
示例#25
0
        public void TestCreateListOfPawns(string color)
        {
            var gameInitializer = new GameInitializer();
            var pawns           = gameInitializer.CreateListOfPawns(color);
            var actualColor     = pawns[0].Color = color;

            Assert.Equal(color, actualColor);
        }
示例#26
0
        public void TestColorExpectedStartPosition(string color, int expectedPositionOnBoard)
        {
            var pawn = new Pawn(1, expectedPositionOnBoard, color);

            GameInitializer.SetStartPosition(pawn);

            Assert.Equal(expectedPositionOnBoard, pawn.Position);
        }
示例#27
0
    private void Awake()
    {
        gameInitializer         = FindObjectOfType <GameInitializer>();
        gameInitializer.onMode += OnModeEventHandler;

        teamManager = FindObjectOfType <TeamManager>();
        teamManager.onTeamInitialised += OnTeamInitialisedEventHandler;
    }
示例#28
0
 private void Awake()
 {
     SetSpawnLimits();
     GlobalEvents.OnWaveStart  += StartSpawningEnemies;
     levelManager               = FindObjectOfType <LevelManager>();
     GlobalEvents.OnEnemyDeath += EnemyDeath;
     gameInitializer            = FindObjectOfType <GameInitializer>();
 }
    public void Awake()
    {
        //Singleton
        gameInitializer = this;

        //Get other objects
        gameStatManager = GetComponent <GameStatManager>();
    }
 /// <summary>
 /// The constructor used to initiate the Victor Turner
 /// </summary>
 /// <param name="players">The players in the game</param>
 /// <param name="world">The world the game takes place in</param>
 public VictorTurner(GameInitializer gameInitializer)
 {
     this.gameInitializer = gameInitializer;
     this.players         = gameInitializer.theWorld.players;
     this.world           = gameInitializer.theWorld;
     this.humanControl    = new WorldController(players[0], world);
     this.graphControl    = GraphController.Instance;
 }
示例#31
0
    public static void Main()
    {
        GameInitializer initializer = new GameInitializer();
        initializer.InitializeGame();

        GameEngine engine = new GameEngine(initializer.GameField, initializer.PlayersPosition, initializer.playersMoveList);
        engine.RunGame();

        Console.WriteLine(engine.FinalResult);
        Console.WriteLine(engine.StartToEndDistance);
    }
        public void TestMethodInitializeReturnsACustomGame()
        {
            var mockPrinter = new Mock<IPrinter>();
            var mockReader = new Mock<IReader>();

            const string TileType = "Letter";
            const string FramePattern = "Column";
            const string Rows = "2";
            const string Cols = "2";
            const string MoverType = "RowCol";

            mockReader.SetupSequence(r => r.ReadLine())
                .Returns(TileType)
                .Returns(FramePattern)
                .Returns(Rows)
                .Returns(Cols)
                .Returns(MoverType);

            var gameInitializator = new GameInitializer(mockPrinter.Object, mockReader.Object);
            var game = gameInitializator.Initialize();

            Assert.IsInstanceOfType(game, typeof(IGame));
        }
 public void ExpectToThrowWhenNoPrinerAndNoReaderAreProvided()
 {
     var reader = new Reader();
     var gameInitializer = new GameInitializer(null, null);
 }
 public void ExpectToThrowWhenNoReaderIsProvided()
 {
     var printer = new Printer();
     var gameInitializer = new GameInitializer(printer, null);
 }
 public void ExpectNotToThrowWhenPrinterAndReaderAreProvided()
 {
     var printer = new Printer();
     var reader = new Reader();
     var gameInitializer = new GameInitializer(printer, reader);
 }
 public void ExpectToThrowWhenNoPrinerIsProvided()
 {
     var reader = new Reader();
     var gameInitializer = new GameInitializer(null, reader);
 }