public HighscoreList addScore(Score score, HighscoreList highscoreList) { if (score == null || highscoreList == null || score.Name == "" || highscoreList.Scores == null) { return(null); } highscoreList.Scores = highscoreList.Scores.OrderByDescending(s => s.Points).ToList(); if (highscoreList.Scores.Count < 10) { highscoreList.Scores.Add(score); } else { if (highscoreList.Scores.Last().Points < score.Points) { highscoreList.Scores.Remove(highscoreList.Scores.Last()); highscoreList.Scores.Add(score); } else { return(null); } } highscoreList.Scores = highscoreList.Scores.OrderByDescending(s => s.Points).ToList(); return(highscoreList); }
private void EndGame() { //判断是否为新高分 bool isNewHighscore = false; if (currentScore > 0) { //高分榜中的最低分 int lowestHighscore = HighscoreList.Count > 0 ? HighscoreList.Min(x => x.Score) : 0; //如果分数大于高分榜中的最低分,或者高分榜中的记录数量还不超过最大值 //显示添加新高分的界面 if ((currentScore > lowestHighscore) || (HighscoreList.Count < MaxHighscoreListEntryCount)) { bdrNewHighscore.Visibility = Visibility.Visible; txtPlayerName.Focus(); isNewHighscore = true; //让游戏停下来 isGameRuning = false; } } //如果不是新高分,则显示成绩 if (isNewHighscore == false) { tbFinalScore.Text = currentScore.ToString(); bdrEndOfGame.Visibility = Visibility.Visible; } gameTickTimer.IsEnabled = false; }
public void RefreshScores() { this.maxScore["Normal"] = this.dataStorageManager.GetDataOrDefault("NormalMaxScore", "0"); this.maxScore["Hard"] = this.dataStorageManager.GetDataOrDefault("HardMaxScore", "0"); try { HighscoreList normalScorelist = this.GameMenu.GetVisual("normalHighscoreList") as HighscoreList; if (normalScorelist != null && this.NormalHighscores.Any()) { normalScorelist.TextRows.Clear(); foreach (Score score in this.NormalHighscores) { normalScorelist.TextRows.Add((this.NormalHighscores.IndexOf(score) + 1).ToString() + ". " + score.Value); } } HighscoreList hardScorelist = this.GameMenu.GetVisual("hardHighscoreList") as HighscoreList; if (hardScorelist != null && this.HardHighscores.Any()) { hardScorelist.TextRows.Clear(); foreach (Score score in this.HardHighscores) { hardScorelist.TextRows.Add((this.HardHighscores.IndexOf(score) + 1).ToString() + ". " + score.Value); } } } catch (Exception ex) { } }
// Saves the highscores to PlayerPrefs serialized in json format public static void SaveScores(HighscoreList scores) { string json = JsonUtility.ToJson(scores); PlayerPrefs.SetString("highscoreTable", json); PlayerPrefs.Save(); }
private void IsNewHighscoreTest(TestHighscoreListType type, int time, int points, bool isNew) { Highscore highscore = new Highscore() { Points = (uint)points, GameTime = TimeSpan.FromSeconds(time), PlayerName = "player" }; var list = ProvideList((int)type); var clone = new List <Highscore>(list); ISettingsProvider provider = new TestSettingsProvider(); provider.Highscores = list; provider.Save(); HighscoreList highscoreList = new HighscoreList(provider); bool b = highscoreList.IsNewHighscore(highscore); Assert.Equal(isNew, b); if (isNew) { highscoreList.AddHighscore(highscore); } Assert.True(highscoreList.Highscores.Count <= 10); if (isNew) { clone.Add(highscore); } clone.Sort(new HighscoreComparer()); clone = clone.Take(10).ToList(); Assert.Equal(clone.Count, highscoreList.Highscores.Count); for (int i = 0; i < list.Count; i++) { Assert.Equal(clone[i], highscoreList.Highscores[i]); } }
public static void Load() { if (inst == null) { new Highscores(); } string scene = SceneManager.GetActiveScene().name; string val = PlayerPrefs.GetString("Highscore_" + scene, "???"); HighscoreList vals = null; try { if (val != "???" && val != "{}") { vals = JsonUtility.FromJson <HighscoreList>(val); } } catch (System.Exception) { Debug.Log("Warning, illegal JSON to parse: " + val); } if (vals == null) { // No highscores for this scene, init them by static values inst.first.Set("None", 9959997, DateTime.Now.AddDays(-1000)); inst.second.Set("None", 9959998, DateTime.Now.AddDays(-1000)); inst.third.Set("None", 9959999, DateTime.Now.AddDays(-1000)); return; } inst.first = vals.first; inst.second = vals.second; inst.third = vals.third; }
public static void Load() { PlayerPrefs.DeleteKey("HighScore1" + SceneManager.GetActiveScene()); PlayerPrefs.DeleteKey("HighScore2" + SceneManager.GetActiveScene()); PlayerPrefs.DeleteKey("HighScore3" + SceneManager.GetActiveScene()); if (inst == null) { new Highscores(); } string scene = SceneManager.GetActiveScene().name; string val = PlayerPrefs.GetString("Highscore_" + scene, "???"); HighscoreList vals = JsonUtility.FromJson <HighscoreList>(val); if (val == "???" || val == "{}" || vals == null) { // No highscores for this scene, init them by static values inst.first.Set("None", 9959997, DateTime.Now.AddDays(-1000)); inst.second.Set("None", 9959998, DateTime.Now.AddDays(-1000)); inst.third.Set("None", 9959999, DateTime.Now.AddDays(-1000)); return; } inst.first = vals.first; inst.second = vals.second; inst.third = vals.third; }
public void ShouldIgnoreZeroEntries() { var list = new HighscoreList(); list.Add(new HighscoreEntry("Simon", 0, DateTime.Now)); Assert.AreEqual(0, list.Count); }
public GeekStreamModel() { _feeds = new SortedDictionary<int,Feed>(); _mostRecentItems = new HighscoreList<FeedItem>((a, b) => b.Published.CompareTo(a.Published), NumberOfRecentEntries); _mostRecentFeeds = new HighscoreList<Feed>((a, b) => (b.LastItemPublished ?? DateTime.MinValue).CompareTo(a.LastItemPublished)); _searchIndex = new SortedDictionary<string, SortedSet<FeedItem>>(StringComparer.InvariantCultureIgnoreCase); _statistics = new Statistics(); }
public GeekStreamModel() { _feeds = new List <Feed>(); _mostRecentItems = new HighscoreList <FeedItem>((a, b) => b.Published.CompareTo(a.Published), NumberOfRecentEntries); _mostRecentFeeds = new HighscoreList <Feed>((a, b) => (b.LastItemPublished ?? DateTime.MinValue).CompareTo(a.LastItemPublished)); _searchIndex = new Dictionary <string, HashSet <IndexEntry> >(StringComparer.InvariantCultureIgnoreCase); _statistics = new Statistics(); }
private void LoadHighscores() { _highscoreList = new HighscoreList(); if (WaveServices.Storage.ExistsStorageFile(HIGHSCORE_FILE_NAME)) { _highscoreList = WaveServices.Storage.Read <HighscoreList>(HIGHSCORE_FILE_NAME); } }
/// <summary> /// Creates a new pinball machine with a given layout. /// </summary> /// <param name="layout"></param> public PinballMachine(IMachineLayout layout) { Layout = layout; Gravity = DEFAULT_GRAVITY; Angle = DEFAULT_ANGLE; Highscores = new HighscoreList(); Init(); }
public void CreateHighscoresFile() { Highscores = new HighscoreList(); using (StreamWriter sw = new StreamWriter(HighscoresPath)) { string json = JsonUtility.ToJson(Highscores, true); sw.Write(json); } }
public void LoadHighscores() { var highscores = Load <HighscoreList> (HighscoresPath); if (highscores != null) { Highscores = highscores; Highscores.highscores.OrderByDescending(h => h.score); } }
IEnumerator getHighscores(Action <HighscoreList> action) { WWW www = new WWW(host + "/highscores"); yield return(www); HighscoreList result = JsonUtility.FromJson <HighscoreList>(www.text); action(result); }
public static void Save() { if (inst == null) { return; } string scene = SceneManager.GetActiveScene().name; HighscoreList list = new HighscoreList(inst.first, inst.second, inst.third); PlayerPrefs.SetString("Highscore_" + scene, JsonUtility.ToJson(list)); PlayerPrefs.Save(); }
public void SaveHighscore() { Highscores.Sort(); Highscores.RemoveAt(5); HighscoreList highscoreList = new HighscoreList { Highscores = Highscores }; string json = JsonUtility.ToJson(highscoreList); PlayerPrefs.SetString("Highscores", json); PlayerPrefs.Save(); }
// Adds a score to the highscore list at position pos. // Should use the position returned from CheckScore. public static void AddScore(int pos, HighscoreEntry entry, HighscoreList list) { print("Adding score " + list.scoreList.Count + " " + pos + " " + entry.score); list.scoreList.Insert(pos, entry); // Remove the last score in the list. Only the great are to be remembered. if (list.scoreList.Count > 10) { list.scoreList.RemoveAt(list.scoreList.Count - 1); } SaveScores(list); }
public void LoadHighscore() { string json = PlayerPrefs.GetString("Highscores"); HighscoreList highscoreList = JsonUtility.FromJson <HighscoreList>(json); if (highscoreList == null) { return; } foreach (HighscoreEntry entry in highscoreList.Highscores) { Highscores.Add(entry); } }
// void Start() // { // HighscoreList highscores = Highscores.LoadScores(); // highscoreList = highscores.scoreList; // if (highscoreList.Count == 0) // { // AddHighScoreEntry(25000, "President Josephy"); // AddHighScoreEntry(15000, "Rosko"); // AddHighScoreEntry(10000, "Josh"); // AddHighScoreEntry(9000, "Billy"); // AddHighScoreEntry(8000, "Mole man"); // AddHighScoreEntry(7000, "A cheater"); // AddHighScoreEntry(6000, "Josh again"); // AddHighScoreEntry(5000, "Gun is OP"); // AddHighScoreEntry(3000, "A bush"); // AddHighScoreEntry(1000, "One of the babies"); // // highscores = Highscores.LoadScores(); // // highscoreList = highscores.scoreList; // } // } void Awake() { entryContainer = transform.Find("highscoreEntryContainer"); entryTemplate = entryContainer.Find("highscoreEntryTemplate"); entryTemplate.gameObject.SetActive(false); // AddHighScoreEntry(999999, "Josephy"); // AddHighScoreEntry(888888, "Rosko"); // AddHighScoreEntry(777777, "Mole man"); // AddHighScoreEntry(555555, "Billy"); // AddHighScoreEntry(666666, "Thomas"); // AddHighScoreEntry(6, "Josh the 2nd"); // AddHighScoreEntry(5, "Josh again"); // AddHighScoreEntry(4, "Still Josh"); // AddHighScoreEntry(3, "Not Josh"); // AddHighScoreEntry(2, "Ok, it's josh"); // AddHighScoreEntry(3, "This really isn't josh"); // AddHighScoreEntry(3, "Josh returns"); // AddHighScoreEntry(1000000, "Better than \\/"); HighscoreList highscores = Highscores.LoadScores(); highscoreList = highscores.scoreList; if (highscoreList.Count == 0) { AddHighScoreEntry(25000, "President Josephy"); AddHighScoreEntry(15000, "Rosko"); AddHighScoreEntry(10000, "Josh"); AddHighScoreEntry(9000, "Billy"); AddHighScoreEntry(8000, "Mole man"); AddHighScoreEntry(7000, "A cheater"); AddHighScoreEntry(6000, "Josh again"); AddHighScoreEntry(5000, "Gun is OP"); AddHighScoreEntry(3000, "A bush"); AddHighScoreEntry(1000, "One of the babies"); highscores = Highscores.LoadScores(); highscoreList = highscores.scoreList; } highscoreEntryTransformList = new List <Transform>(); foreach (HighscoreEntry entry in highscoreList) { CreateHighscoreEntry(entry, entryContainer, highscoreEntryTransformList); } }
public string ListHighscoreFromHighscoreList(HighscoreList list, int size) { string output = ""; foreach (Highscore highscore in list.data) { output = output + highscore.player1Name + " | "; output = output + highscore.player2Name + " | "; output = output + string.Format("{0:D2} | {1:D2}\n", highscore.player1Score, highscore.player2Score); } if (DownloadedHighscoreListToString != null) { DownloadedHighscoreListToString(output); } return(output); }
// Returns highscore table in a HighscoreList object public static HighscoreList LoadScores() { // Load the highscore list from player prefs string jsonString = PlayerPrefs.GetString("highscoreTable"); HighscoreList list = JsonUtility.FromJson <HighscoreList>(jsonString); // If no list was saved in the player prefs, create one if (list == null) { list = new HighscoreList { scoreList = new List <HighscoreEntry>() }; } return(list); }
public void ShouldUseCorrectOrder() { // Arrange var list = new HighscoreList(); var entry1 = new HighscoreEntry("Simon", 1, DateTime.Now); var entry2 = new HighscoreEntry("Simon", 2, DateTime.Now); // Act list.Add(entry1); list.Add(entry2); // Assert var enumerator = list.GetEnumerator(); enumerator.MoveNext(); Assert.AreSame(entry2, enumerator.Current); }
private void ScoreSortedLeaderboard() { //Load Save file string json = PlayerPrefs.GetString("LeaderboardEntries"); highscores = JsonUtility.FromJson <HighscoreList>(json); //Sort highscoreEntryList... for (int i = 0; i < highscores.entries.Count; i++) { for (int j = i + 1; j < highscores.entries.Count; j++) { //...by playerScore if (highscores.entries[j].playerScore > highscores.entries[i].playerScore) { //Swap HighscoreEntry temp = highscores.entries[i]; highscores.entries[i] = highscores.entries[j]; highscores.entries[j] = temp; } } } Debug.Log(PlayerPrefs.GetString("LeaderboardEntries")); //Destroy Old Leaderboard Entries for (int i = 0; i < 10; i++) { DestroyOldHighscoreEntryTransform(entryContainer); } //Display 10 highscoreEntries from HighscoreEntryList ^^^ highscoreEntryTransformList = new List <Transform>(); int length = 10; if (highscores.entries.Count <= 10) { length = highscores.entries.Count; } for (int i = 0; i < length; i++) { CreateHighscoreEntryTransform(highscores.entries[i], entryContainer, highscoreEntryTransformList); } }
public void AddSmallSCore() { var logic = new HighscoreLogic(); HighscoreList highscoreList = new HighscoreList(); highscoreList.Scores = new List <Score>(); highscoreList.HighscoreListId = 1; highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); Assert.Equal(null, logic.addScore(new Score { HighsoreListId = 1, Name = "Brunner", Points = 10 }, highscoreList)); }
public void AddMoreThanTen() { var logic = new HighscoreLogic(); HighscoreList highscoreList = new HighscoreList(); highscoreList.Scores = new List <Score>(); highscoreList.HighscoreListId = 1; highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Schmank", Points = 30 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Friedl", Points = 20 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); highscoreList.Scores.Add(new Score { HighsoreListId = 1, Name = "Dude", Points = 40 }); Assert.Equal(10, logic.addScore(new Score { HighsoreListId = 1, Name = "Brunner", Points = 80 }, highscoreList).Scores.Count); }
private void AddHighScoreEntry(int score, string name) { // Create entry HighscoreEntry entry = new HighscoreEntry(score, name); // Load highscore table HighscoreList highscores = Highscores.LoadScores(); int pos = Highscores.CheckScore(score, highscores.scoreList); if (pos != -1 && pos != 10) { Highscores.AddScore(pos, entry, highscores); } else { print("Score " + score + " too low. Discarding."); } Highscores.SaveScores(highscores); }
public void UpdateHighscoresFile(string user, string levelname, int scr) { HighscoreList hsList = Load <HighscoreList> (HighscoresPath); Highscore temp = new Highscore(); hsList.highscores.Add(new Highscore() { User = user, levelName = levelname, score = scr }); hsList.highscores.OrderByDescending(u => u.score); Highscores = hsList; using (StreamWriter sw = new StreamWriter(HighscoresPath)) { string json = JsonUtility.ToJson(Highscores, true); sw.Write(json); } }
private void Awake() { entryTemplate.gameObject.SetActive(false); //Debug.Log("Add Entry? " + PlayerPrefs.GetInt("AddEntry")); if (!PlayerPrefs.HasKey("LeaderboardEntries")) { //Convert highscoreList to Json file highscores = new HighscoreList { entries = new List <HighscoreEntry>() }; string saveJsonEntryList = JsonUtility.ToJson(highscores); PlayerPrefs.SetString("LeaderboardEntries", saveJsonEntryList); PlayerPrefs.Save(); //Debug.Log("If statement read."); } else { //Load Save file string loadJsonEntryList = PlayerPrefs.GetString("LeaderboardEntries"); highscores = JsonUtility.FromJson <HighscoreList>(loadJsonEntryList); //Debug.Log("Else Statement read"); } //Add new entry if (PlayerPrefs.GetInt("AddEntry") == 1) { AddHighscoreEntry(PlayerPrefs.GetFloat("PlayerTimeFloat"), PlayerPrefs.GetString("PlayerTimeString"), PlayerPrefs.GetInt("PlayerScore"), PlayerPrefs.GetString("PlayerName")); } ScoreSortedLeaderboard(); }
public IEnumerator StartHighscoreDownload(bool limit, int limitSize = 100, bool ToString = true) { yield return(isGetDatabaseConnectionInfoRunning); WWW connection; if (limit) { connection = new WWW(databaseURL + "/highscore/listHighscoreLimit?limit=" + limitSize); } else { connection = new WWW(databaseURL + "/highscore/listHighscores"); } yield return(connection); if (connection.error == null) { Debug.Log("Highscore successfully downloaded!"); HighscoreList highscoreListDB = HighscoreList.CreateFromJSON(connection.text); if (ToString) { ListHighscoreFromHighscoreList(highscoreListDB, limitSize); } else { if (DownloadedHighscoreList != null) { DownloadedHighscoreList(highscoreListDB); } } } else { Debug.LogError("Error: " + connection.error); } yield return(null); }
private void AddHighscoreEntry(float timeFloat, string timeString, int playerScore, string playerName) { //Setup Entry Values HighscoreEntry highscoreEntry = new HighscoreEntry { timeFloat = timeFloat, timeString = timeString, playerScore = playerScore, playerName = playerName }; //Load Save file string loadJsonEntryList = PlayerPrefs.GetString("LeaderboardEntries"); HighscoreList highscores = JsonUtility.FromJson <HighscoreList>(loadJsonEntryList); //Add new entry to list highscores.entries.Add(highscoreEntry); //Convert highscoreList to Json file string saveJsonEntryList = JsonUtility.ToJson(highscores); PlayerPrefs.SetString("LeaderboardEntries", saveJsonEntryList); PlayerPrefs.Save(); }
public async Task <HighscoreList> PostScore(Score score) { HighscoreList highscoreList = await _context.HighscoreLists .Include(hl => hl.Scores) .FirstAsync(hl => hl.HighscoreListId == 1); var logic = new HighscoreLogic(); highscoreList = logic.addScore(score, highscoreList); if (highscoreList != null) { _context.HighscoreLists.Update(highscoreList); await _context.SaveChangesAsync(); return(highscoreList); } else { return(null); } }
/// <summary> /// Initializes a new instance of MainWindowViewModel. /// </summary> /// <param name="builder">An object that is responsible for building core game objects.</param> /// <param name="highscores">The list of the highscores in the game.</param> /// <param name="gameSerializer">An object that is responsible for saving and loading GameState.</param> /// <param name="validator">An object that validates control keys used in the game.</param> /// <param name="provider">An object that provides some configuration settings used in the game.</param> public MainWindowViewModel(IGameBuilder builder, HighscoreList highscores, IGameSerializer gameSerializer, IKeysValidator validator, ISettingsProvider provider) : base("Main") { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } _provider = provider; var vm = new List <ViewModelBase> { new StartMenuViewModel(this, gameSerializer), new OptionsViewModel(this, validator), new HighscoresViewModel(highscores), new GameViewModel(builder, this, this, provider), new EndGameViewModel(highscores), new PauseViewModel(this, gameSerializer) }; foreach (var result in vm.OfType <CloseableViewModel>()) { result.RequestClose += (sender, args) => OnCloseView((sender as ViewModelBase)?.Name); } ViewModels = vm; }
/// <summary> /// Initializes a new instance of HighscoreViewModel. /// </summary> /// <param name="highscoreList">The list of highscores.</param> public HighscoresViewModel(HighscoreList highscoreList) : base("Highscores") { HighscoreList = highscoreList; }
/// <summary> /// Load all the highscore lists. /// </summary> public void CreateHighscoreLists() { mHighscores = new HighscoreList[3, 7]; for (int diff = 0; diff < mHighscores.GetLength(0); ++diff) { for (int lvl = 0; lvl < mHighscores.GetLength(1); ++lvl) { mHighscores[diff, lvl] = new HighscoreList((Difficulty)diff, (Level)lvl); } } }