private void HandleDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var       gameId    = (gameHistoryList.SelectedItem as GameModel).id;
            GameMoves gameMoves = new GameMoves(gameId);

            gameMoves.Show();
        }
Exemple #2
0
        public async Task RestartGame()
        {
            try
            {
                var session = await HttpService.Get("/game").ExecuteAsync <GameSession>();

                GameSessionId = session.SessionId;
                Players.Clear();
                CurrentMoves.Clear();
                GameMoves.Clear();
                TurnResults.Clear();
                SessionBegun = true;
                GameTurn     = 1;
            }
            catch (System.Exception e)
            {
                await MessageService.ShowError(e.Message);
            }
        }
Exemple #3
0
        /// <summary>
        /// Processes the data of this particular game by created player game stats for each player
        /// present in the game.
        /// </summary>
        public void ProcessGameData()
        {
            var activePlayers = new List <string>();
            var isFirstPeel   = true;

            GameDuration = GameMoves.Last().TimeOfMove;

            if (GameDuration <= 0)
            {
                throw new ArgumentOutOfRangeException(
                          string.Format("Game Duration must be positive. GameDuration = {0}",
                                        GameDuration));
            }

            try
            {
                foreach (var dataPoint in GameMoves)
                {
                    var curPlayer = dataPoint.Player;

                    if (PlayerDictionary[curPlayer] == null)
                    {
                        PlayerDictionary[curPlayer] = new PlayerGameStats();
                        activePlayers.Add(curPlayer);
                    }

                    PlayerDictionary[curPlayer].RawGameData.Add(dataPoint);

                    if ((dataPoint.MoveType == MoveType.Peel) && isFirstPeel)
                    {
                        isFirstPeel = false;
                        PlayerDictionary[curPlayer].PerformedFirstPeel = true;
                    }
                }

                foreach (var activePlayer in activePlayers)
                {
                    // Iterate through the player's game moves.
                    foreach (var dataPoint in PlayerDictionary[activePlayer].RawGameData)
                    {
                        switch (dataPoint.MoveType)
                        {
                        case MoveType.Dump:
                            PlayerDictionary[activePlayer].NumberOfDumps++;
                            break;

                        case MoveType.Peel:
                            PlayerDictionary[activePlayer].NumberOfPeels++;
                            break;

                        case MoveType.Victory:
                            PlayerDictionary[activePlayer].IsWinner = true;
                            Winner = activePlayer;
                            break;
                        }
                    }

                    PlayerDictionary[activePlayer].AvgTimeBetweenDumps =
                        PlayerDictionary[activePlayer].NumberOfDumps / GameDuration;

                    PlayerDictionary[activePlayer].AvgTimeBetweenPeels =
                        PlayerDictionary[activePlayer].NumberOfPeels / GameDuration;
                }


                //
                // Create a blank PlayerGameStats object for all inactive players
                //

                var inactivePlayerKeys = PlayerDictionary
                                         .Where(kvp => kvp.Value == null)
                                         .Select(kvp => kvp.Key).ToList();

                foreach (var key in inactivePlayerKeys)
                {
                    PlayerDictionary[key] = new PlayerGameStats();
                }
            }
            catch (KeyNotFoundException e)
            {
#if DEBUG
                throw e;
#endif
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            //string[] names =
            //{
            //    "Christina Aguilera",
            //    "Shakira",
            //    "Beyonce",
            //    "Lady Gaga"
            //};
            //Array.Sort(names);
            //foreach (var name in names)         {
            //    Console.WriteLine(names);
            //}

            //Person[] beatles =
            //{
            //    new Person {FirstName = "a", LastName = "b"},
            //    new Person {FirstName = "a", LastName = "b"}
            //};
            //Person[] batelesClone = (Person[]) beatles.Clone();

            //Person[] persons =
            //{
            //    new Person("Damon", "Hill"),
            //    new Person("Niki", "Lauda"),
            //    new Person("Ayrton", "Senna"),
            //    new Person("Graham", "Hill"),
            //};
            //Array.Sort(persons);
            //foreach (var p in persons)
            //{
            //    Console.WriteLine(p);
            //}

            var titles = new MusicTitles();

            foreach (var title in titles)
            {
                Console.WriteLine(title);
            }
            Console.WriteLine();
            Console.WriteLine("reverse");
            foreach (var title in titles.Reverse())
            {
                Console.WriteLine(title);
            }
            Console.WriteLine();
            Console.WriteLine("sunset");
            foreach (var title in titles.Subset(2, 2))
            {
                Console.WriteLine(title);
            }

            var         game       = new GameMoves();
            IEnumerator enumerator = game.Cross();

            while (enumerator.MoveNext())
            {
                enumerator = enumerator.Current as IEnumerator;
            }

            var janet = new Person2(1, "Janet", "Jackson");

            Person2[] people1 =
            {
                new Person2(1, "2", "3"),
                janet
            };
            Person2[] people2 =
            {
                new Person2(1, "2", "3"),
                janet
            };
            if (people1 != people2)
            {
                Console.WriteLine("not same content");
            }
        }
Exemple #5
0
        /// <summary>
        /// Save a game move data point to the game data.
        /// </summary>
        /// <param name="player"></param>
        /// <param name="timeOfMove"></param>
        /// <param name="moveType"></param>
        public void AddGameMoveDataPoint(string player, int timeOfMove, MoveType moveType)
        {
            var dataPoint = new GameMoveDataPoint(player, timeOfMove, moveType);

            GameMoves.Add(dataPoint);
        }