private void StartGame() { _setting = GetCurrSetting(); //save current setting Levels.SetSettings(_setting, _diffIndex); _gameLogic = new WumpusGameLogic(_setting, _dataAccess); SetGameEventHandlers(); try { if (_setting.Size > 50) { throw new Exception(); } SetExtraSettings(); //start the game _gameLogic.StartGame(); ActSize = _setting.Size; ActArrow = _gameLogic.PlayerArrows; OnPropertyChanged("ActSize"); UpdateField(); Info = "Mit cselekszel? Mozogni a nyíl gombokkal illetve a nyíl billentyűkkel is tudsz!"; ActPosText = "Beléptél a barlangba, a bal alsó sarkában vagy."; } catch (Exception) { MessageBox.Show("Hibás játékparaméterek! Kérlek Figyelj, hogy értelmes adatokat adj meg!", "Hiba", MessageBoxButton.OK, MessageBoxImage.Error); _gameLogic = new WumpusGameLogic(); } }
public void Save(string fileName, WumpusGameLogic model) { var writer = new StreamWriter(fileName); //settings writer.WriteLine( model.Setting.Size + " " + model.Setting.ArrowNumber + " " + model.Setting.SettingName + " " + (int)model.Setting.TrapNumberType + " " + model.Setting.TrapNumberMin + " " + model.Setting.TrapNumberMax); //player cord writer.WriteLine(model.PlayerCord.Item1 + " " + model.PlayerCord.Item2); //arrow, points, started writer.WriteLine(model.PlayerArrows + " " + model.PlayerPoints + " " + model.IsStarted); //cave var size = model.Setting.Size; for (var i = 0; i < size; i++) { for (int j = 0; j < size; j++) { var field = model[i, j]; writer.WriteLine((int)field.FieldType + " " + field.Visible + " " + i + " " + j); var senses = String.Join(" ", field.SenseTypes.Select(x => (int)x)); writer.WriteLine(senses); } } writer.Close(); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); Application.Current.Exit += Current_Exit; _gameLogic = new WumpusGameLogic(); _viewModel = new WumpusViewModel(_gameLogic, _dataAccess); _viewModel.QuitEvent += QuitEvent; _view = new MainWindow { DataContext = _viewModel }; _view.Closing += QuitEvent; _view.Show(); }
private static void SetGame(WumpusGameLogic game) { _game = game; _game.GameOverEvent += WumpusGameOverEvent; _game.OutOfFieldEvent += WumpusOutOfFieldEvent; _game.SucceccStepEvent += WumpusSucceccStepEvent; if (!_game.IsStarted) { _game.StartGame(); System.Console.WriteLine("\n\nBeléptél a barlangba, a bal alsó sarkában vagy.\n" + "A barlang mérete: " + _game.Setting.Size + " x " + _game.Setting.Size); _lastSetting = _game.Setting; } //System.Console.WriteLine("Csapdák száma: " + game.Setting.TrapNumberMin + ".." + game.Setting.TrapNumberMax); WriteSenses(); Game(); //System.Console.ReadKey(); }
public WumpusViewModel(WumpusGameLogic gameLogic, IWumpusDataAccess dataAccess) { _dataAccess = dataAccess; _gameLogic = gameLogic; SetGameEventHandlers(); DiffIndex = 0; Info = "Játék indításához válassz nehézséget, és kattints a Játék kezdése gombra!"; OnPropertyChanged("Info"); IsShowEndChecked = true; IsShowFieldChecked = false; StartGameCommand = new DelegateCommand(o => StartGame()); //SaveGameCommand = new DelegateCommand(SavingGame); //LoadGameCommand = new DelegateCommand(LoadingGame); ExitGameCommand = new DelegateCommand(o => OnQuitEvent()); StepCommand = new DelegateCommand(o => Step((Direction)Convert.ToInt32(o))); ShootCommand = new DelegateCommand(o => ShootArrow()); GrabCommand = new DelegateCommand(o => GrabGold()); ShowEndCommand = new DelegateCommand(o => { IsShowEndChecked = !IsShowEndChecked; SetExtraSettings(); UpdateField(); }); ShowFieldCommand = new DelegateCommand(o => { IsShowFieldChecked = !IsShowFieldChecked; SetExtraSettings(); UpdateField(); }); }
public void Save(string fileName, WumpusGameLogic model) { throw new NotImplementedException(); }
public WumpusGameLogic LoadGame(string fileName) { try { var reader = new StreamReader(fileName); var model = new WumpusGameLogic(this); //setting var line = reader.ReadLine().Split(' '); var setting = new WumpusSetting { Size = Int32.Parse(line[0]), ArrowNumber = Int32.Parse(line[1]), SettingName = line[2], TrapNumberType = (TrapNumberType)Int32.Parse(line[3]), TrapNumberMin = Int32.Parse(line[4]), TrapNumberMax = Int32.Parse(line[5]) }; //player cord line = reader.ReadLine().Split(' '); var playerCord = new Tuple <int, int>(Int32.Parse(line[0]), Int32.Parse(line[1])); //arrow, points, started line = reader.ReadLine().Split(' '); var cArrow = Int32.Parse(line[0]); var cPoint = Int32.Parse(line[1]); var cStrated = Boolean.Parse(line[2]); //cave var cave = new List <WumpusField>(); for (var i = 0; i < setting.Size; i++) { for (int j = 0; j < setting.Size; j++) { line = reader.ReadLine().Split(' '); var fieldType = (FieldType)int.Parse(line[0]); var visible = bool.Parse(line[1]); var cord = new Tuple <int, int>(Int32.Parse(line[2]), int.Parse(line[3])); //sense var sense = new List <SenseType>(); line = reader.ReadLine().Split(' '); if (!line.Any(string.IsNullOrWhiteSpace)) { sense = line.Select(x => (SenseType)int.Parse(x)).ToList(); } cave.Add(new WumpusField { Coordinates = cord, FieldType = fieldType, Visible = visible, SenseTypes = sense }); } } model.Load(setting, playerCord, cArrow, cPoint, cave, cStrated); return(model); } catch (Exception e) { //todo spec error throw; } }