private void HandleDoubleClick(object sender, MouseButtonEventArgs e) { var gameId = (gameHistoryList.SelectedItem as GameModel).id; GameMoves gameMoves = new GameMoves(gameId); gameMoves.Show(); }
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); } }
/// <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 } }
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"); } }
/// <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); }