コード例 #1
0
ファイル: BST.cs プロジェクト: eruandou/ZambranoPrograII
    public void AddElement(ref BSTNode node, HighscorePlayer HSPlayer)
    {
        //Check root

        if (node == null)
        {
            node = new BSTNode(HSPlayer);
            nodeCount++;
        }

        //Root's already ocupied, check left and right children
        //to fit new data


        //I consider an equal score to be a left child
        //Just because of being the first person to achieve a specific score
        //deserves to be over someone who got the same score later
        else if (node.playerInfo.score >= HSPlayer.score)
        {
            AddElement(ref node.leftchild, HSPlayer);
        }
        else if (node.playerInfo.score < HSPlayer.score)
        {
            AddElement(ref node.rightchild, HSPlayer);
        }
    }
コード例 #2
0
    //Tested, works
    public void InsertPlayerIntoRanking(HighscorePlayer hsP)
    {
        string query = string.Format("INSERT INTO PlayerScoresDataTable" +
                                     "(Score,Nickname)" +
                                     "VALUES ({0},'{1}')",
                                     hsP.score,
                                     hsP.nickname);

        PostQuery(query);
    }
コード例 #3
0
    public static void Save(int score, string nickname)
    {
        Debug.Log($"stored name is gonna be {nickname}");


        HighscorePlayer newHSPlayer = new HighscorePlayer(score, nickname);

        Debug.Log($"New player is {newHSPlayer.nickname} and has a score of {newHSPlayer.score}");

        if (scoresDatabase == null)
        {
            LoadDataBase();
        }

        scoresDatabase.InsertPlayerIntoRanking(newHSPlayer);
    }
コード例 #4
0
    public List <HighscorePlayer> GetPlayersRankingList()
    {
        List <HighscorePlayer> listOfPlayers = new List <HighscorePlayer>();

        try
        {
            dbConn.Open();

            IDbCommand dbCommand = dbConn.CreateCommand();

            string consultQuery = "SELECT * FROM PlayerScoresDataTable";

            dbCommand.CommandText = consultQuery;

            IDataReader reader = dbCommand.ExecuteReader();

            while (reader.Read())
            {
                int    score    = reader.GetInt32(1);
                string nickname = reader.GetString(2);

                HighscorePlayer p = new HighscorePlayer(score, nickname);
                listOfPlayers.Add(p);
            }

            reader.Close();
            reader = null;
            dbCommand.Dispose();
            dbCommand = null;
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }
        finally
        {
            dbConn.Close();
        }

        return(listOfPlayers);
    }
コード例 #5
0
ファイル: BST.cs プロジェクト: eruandou/ZambranoPrograII
    public void DeleteElement(ref BSTNode node, HighscorePlayer HSPlayer)
    {
        if (node != null)
        {
            //if selected node has no children, just make it null

            if (node.playerInfo.score == HSPlayer.score && (node.leftchild == null) && (node.rightchild == null))
            {
                node = null;
            }

            //Reorder left side branch
            else if (node.playerInfo.score == HSPlayer.score && node.leftchild != null)
            {
                node.playerInfo = this.Bigger(node.leftchild);
                DeleteElement(ref node.leftchild, node.playerInfo);
            }

            //Reorder right side branch
            else if (node.playerInfo.score == HSPlayer.score && node.leftchild == null)
            {
                root.playerInfo = this.Smaller(node.rightchild);
                DeleteElement(ref node.rightchild, node.playerInfo);
            }

            //Desired deleteable node is the right children
            else if (node.playerInfo.score < HSPlayer.score)
            {
                DeleteElement(ref node.rightchild, HSPlayer);
            }

            //Desired deleteable node is the left children
            else
            {
                DeleteElement(ref node.leftchild, HSPlayer);
            }
        }
    }
コード例 #6
0
 public void SetData(HighscorePlayer player)
 {
     Nickname.text = player.nickname;
     Score.text    = player.score.ToString();
 }
コード例 #7
0
 public BSTNode(HighscorePlayer HSPlayer)
 {
     this.playerInfo = HSPlayer;
 }