Ejemplo n.º 1
0
        private async Task LoadGame(String path)
        {
            try
            {
                if (model == null)
                {
                    GameStateWrapper state = await dataAccess.LoadGameAsync(path);

                    model = SquaresGameModel.FromSave(state, dataAccess);
                    NewGame(model);
                }
                else
                {
                    await model.LoadGameAsync(path);

                    p1NameLabel.Text = model.PlayerOne.PlayerName;
                    p2NameLabel.Text = model.PlayerTwo.PlayerName;
                }
                InitDots(model.FieldSize);
                UpdateUI(this, EventArgs.Empty);
            }
            catch (Exception excp)
            {
                MessageBox.Show(excp.Message);
            }
        }
Ejemplo n.º 2
0
        public async void LoadGame()
        {
            OpenFileDialog openDialog = new OpenFileDialog();

            if (openDialog.ShowDialog() == true)
            {
                try
                {
                    if (model == null)
                    {
                        GameStateWrapper state = await persistence.LoadGameAsync(openDialog.FileName);

                        model = SquaresGameModel.FromSave(state, persistence);
                        NewGame(model);
                    }
                    else
                    {
                        await model.LoadGameAsync(openDialog.FileName);

                        PlayerOne.Player = model.PlayerOne;
                        PlayerTwo.Player = model.PlayerTwo;
                    }
                    FieldSize = model.FieldSize;
                    InitDots(FieldSize);
                    UpdateUI(this, EventArgs.Empty);
                }
                catch (Exception excp)
                {
                    System.Windows.MessageBox.Show(excp.Message);
                }
            }
        }
Ejemplo n.º 3
0
        private void NewGame(object o)
        {
            int size = int.Parse((String)o);

            FieldSize = size;
            PlayerOne.Player.Points = 0;
            PlayerTwo.Player.Points = 0;
            OnPropertyChanged("PlayerOne");
            OnPropertyChanged("PlayerTwo");
            model           = new SquaresGameModel(FieldSize, PlayerOne.Player, PlayerTwo.Player, persistence);
            model.UpdateUI += UpdateUI;
            model.EndGame  += PlayerWon;
            Shapes.Clear();
            InitDots(FieldSize);
        }
Ejemplo n.º 4
0
        private void newGameBtn_Click(object sender, EventArgs e)
        {
            GameStarter starter = new GameStarter();

            Player[] players   = null;
            int      fieldSize = 0;

            starter.PlayerCreated += (sender2, args) => { players = args.Item1; fieldSize = args.Item2; };
            starter.ShowDialog();

            if (starter.DialogResult == DialogResult.OK)
            {
                model = new SquaresGameModel(fieldSize, players[0], players[1], dataAccess);
                NewGame(model);
            }
        }
Ejemplo n.º 5
0
        private void NewGame(SquaresGameModel model)
        {
            //Subscriptions
            model.UpdateUI += UpdateUI;
            model.EndGame  += PlayerWon;

            //Setup UI and refresh
            p1NameLabel.Visible  = true;
            p1PointLabel.Visible = true;
            p2NameLabel.Visible  = true;
            p2PointLabel.Visible = true;
            p1NameLabel.Text     = model.PlayerOne.PlayerName;
            p2NameLabel.Text     = model.PlayerTwo.PlayerName;
            saveGameBtn.Enabled  = true;

            InitDots(model.FieldSize);
            UpdateUI(this, EventArgs.Empty);
        }
Ejemplo n.º 6
0
        //CTOR
        public MainWindowViewModel()
        {
            //DEFAULT SETTINGS
            FieldSize = 3;
            dotRadius = 15;
            playerOne = new PlayerViewModel(new Player("PlayerOne", Colors.Coral), Colors.Coral);
            playerTwo = new PlayerViewModel(new Player("PlayerTwo", Colors.Green), Colors.Green);

            persistence     = new SquaresGameDataAccess();
            model           = new SquaresGameModel(FieldSize, playerOne.Player, playerTwo.Player, persistence);
            model.UpdateUI += UpdateUI;
            model.EndGame  += PlayerWon;
            Shapes          = new ShapeWrapper();

            //Commands
            SelectFirstDot  = new DelegateCommand(HandleFirstDotClicked);
            SelectSecondDot = new DelegateCommand(HandleSecondDotClicked);
            NewGameCommand  = new DelegateCommand(NewGame);
            SaveCommand     = new DelegateCommand(o => SaveGame());
            LoadCommand     = new DelegateCommand(o => LoadGame());

            InitDots(FieldSize);
        }
Ejemplo n.º 7
0
        public void Initialize()
        {
            Player PlayerOne = new Player("TestPlayer1", Colors.Red);
            Player PlayerTwo = new Player("TestPlayer2", Colors.Blue);

            state = new GameStateWrapper
            {
                PlayerOne           = PlayerOne,
                PlayerTwo           = PlayerTwo,
                ActivePlayer        = PlayerOne,
                FieldSize           = 3,
                Lines               = new List <System.Tuple <Point, Point, Player> >(),
                Rectangles          = new List <System.Tuple <Point, Point, Player> >(),
                RegisteredRectCount = 0
            };

            mockDAccess = new Mock <ISquaresGameDataAccess>();
            mockDAccess.Setup(mock => mock.LoadGameAsync(It.IsAny <String>()))
            .Returns(() => Task.FromResult(state));

            model          = SquaresGameModel.FromSave(state, mockDAccess.Object);
            model.EndGame += EndGameAssert;
            model.EndGame += (sender, e) => ++ endGameRaised;
        }