static void Main(string[] args) { Console.Title = "BATTLESHIP"; Console.OutputEncoding = Encoding.Unicode; bool isEasyLevel = false; Intelligence enemysMind = null; ConsoleGame currentGame; UserActions numberUserAction = (UserActions)UserInterface.ShowUserActions(); bool isNewGame = UserInterface.IsNewGame(); if (isNewGame) { Level levelNumber = UserInterface.InputDifficultyLevel(); switch (levelNumber) { case Level.Easy: isEasyLevel = true; break; case Level.Meduim: enemysMind = new Intelligence(-1, -1); break; case Level.Hard: enemysMind = new AdvancedIntelligence(-1, -1); break; default: break; } MethodShipsBuild introducedMethod = UserInterface.EnterShipsBuildingMethod(); currentGame = new ConsoleGame(numberUserAction, introducedMethod, enemysMind, isEasyLevel); } else { using (PlayerMapSerializer creator = new PlayerMapSerializer(PATH_TO_FOLDER, PATH_TO_FILE)) { currentGame = creator.ReadPlayerMap() as ConsoleGame; if (currentGame != null) { currentGame.NumberUserAction = numberUserAction; currentGame.IsNewGame = false; } } } currentGame.Run(); Console.ReadKey(); }
public ConsoleGame(UserActions numberUserAction, MethodShipsBuild introducedMethod, Intelligence enemysMind, bool isEasyLevel) { _numberUserAction = numberUserAction; _introducedMethod = introducedMethod; _enemysMind = enemysMind; _isEasyLevel = isEasyLevel; _playerMap = null; _enemyMap = null; _isPlayerWinner = false; _isAlivePlayerAfterRigthShoot = false; _enemyTurn = "ENEMY'S TURN!"; _yourTurn = "YOUR TURN!"; _isEasyLevel = false; _isTargetPlayer = false; _isTargetEnemy = false; _isNewGame = true; }
public static MethodShipsBuild EnterShipsBuildingMethod() { Console.Clear(); Console.WriteLine("Please input method of ships building:"); for (MethodShipsBuild i = MethodShipsBuild.AutoRandom; i <= MethodShipsBuild.Manual; i++) { Console.WriteLine($"{i} - {(int)i}"); } bool isNumber; int methodNumber; do { isNumber = int.TryParse(Console.ReadLine(), out methodNumber); } while (!isNumber || (methodNumber > 2) || (methodNumber < 1)); return((MethodShipsBuild)methodNumber); }