-
March 19th, 2015, 02:13 PM
#1
Help With High Score Leaderboard
I am trying to take 8 players scores and sort them into highest at the top to lowest at the bottom. Any codes i have tried just is not working out at all and i have no idea what i am doing wrong. I have 8 separate Textboxes.
First I had this:
Code:
Private Sub RankScoresBtn_Click(sender As Object, e As EventArgs) Handles RankScoresBtn.Click
Dim score(7) As Integer
score(0) = CInt(P1Score.Text)
score(1) = CInt(P2Score.Text)
score(2) = CInt(P3Score.Text)
score(3) = CInt(P4Score.Text)
score(4) = CInt(P5Score.Text)
score(5) = CInt(P6Score.Text)
score(6) = CInt(P7Score.Text)
score(7) = CInt(P8Score.Text)
Array.Sort(score)
Array.Reverse(score)
End Sub
Then i tried this:
Code:
Private Sub RankScoresBtn_Click(sender As Object, e As EventArgs) Handles RankScoresBtn.Click
Dim highscore(7) As Integer
highscore(0) = P1Score.Text(1)
highscore(1) = P2Score.Text(2)
highscore(2) = P3Score.Text(3)
highscore(3) = P4Score.Text(4)
highscore(4) = P5Score.Text(5)
highscore(5) = P6Score.Text(6)
highscore(6) = P7Score.Text(7)
highscore(7) = P8Score.Text(8)
Array.Sort(highscore)
Array.Reverse(highscore)
End Sub
but with that one, all the Pscore.text had blue lines under it
then i tried:
Code:
Dim a(5) As Integer
Dim i As Integer
Dim j As Integer
a(0) = P1Score.Text
a(1) = P2Score.Text
a(2) = P3Score.Text
a(3) = P4Score.Text
a(4) = P5Score.Text
For i = 0 To 4
For j = i + 1 To 4
If a(i) > a(j) Then
' swap the number in those two locations
' For Eg: if x = 10 and y = 9 then
' x y
' 10 9
' Since 10 > 9 we swap x and y
' x = x + y => x = 10 + 9 = 19
' y = x - y => y = 19 - 9 = 10 => y = 10
' x = x - y => x = 19 - 10 = 9 => x = 9
a(i) = a(i) + a(j)
a(j) = a(i) - a(j)
a(i) = a(i) - a(j)
End If
Next j
Next i
'Now the array would hold the values in ascending order
'To sort in descending order just make the following change
'If a(i) < a(j) Then
and with this i got an error stating Conversion from string "" to type 'Integer' is not valid"
and last but not least i tried this:
Code:
#Region "variables"
'Dim score As Integer
Dim player1score As Integer = 0
Dim player2score As Integer = 0
Dim player3score As Integer = 0
Dim player4score As Integer = 0
Dim player5score As Integer = 0
Dim player6score As Integer = 0
Dim player7score As Integer = 0
Dim player8score As Integer = 0
Dim p1name As String
Dim p2name As String
Dim p3name As String
Dim p4name As String
Dim p5name As String
Dim p6name As String
Dim p7name As String
Dim p8name As String
'Private Sub scoreboard()
'End Sub
#End Region
Private Sub RankScoresBtn_Click(sender As Object, e As EventArgs) Handles RankScoresBtn.Click
If player1score > player2score Then
player8score = player7score
player7score = player6score
player6score = player5score
player5score = player4score
player4score = player3score
player3score = player2score
player2score = player1score
p8name = p7name
p7name = p6name
p6name = p5name
p5name = p4name
p4name = p3name
p3name = p2name
p2name = p1name
PlayerOneRank.Text = p1name
PlayerTwoRank.Text = p2name
PlayerThreeRank.Text = p3name
PlayerFourRank.Text = p4name
PlayerFiveRank.Text = p5name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P1Score.Text = player1score
P2Score.Text = player2score
P3Score.Text = player3score
P4Score.Text = player4score
P5Score.Text = player5score
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player2score > player1score Then
player8score = player7score
player7score = player6score
player6score = player5score
player5score = player4score
player4score = player3score
player3score = player2score
p8name = p7name
p7name = p6name
p6name = p5name
p5name = p4name
p4name = p3name
p3name = p2name
PlayerTwoRank.Text = p2name
PlayerThreeRank.Text = p3name
PlayerFourRank.Text = p4name
PlayerFiveRank.Text = p5name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P2Score.Text = player2score
P3Score.Text = player3score
P4Score.Text = player4score
P5Score.Text = player5score
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player3score > player2score Then
player8score = player7score
player7score = player6score
player6score = player5score
player5score = player4score
player4score = player3score
p8name = p7name
p7name = p6name
p6name = p5name
p5name = p4name
p4name = p3name
PlayerThreeRank.Text = p3name
PlayerFourRank.Text = p4name
PlayerFiveRank.Text = p5name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P3Score.Text = player3score
P4Score.Text = player4score
P5Score.Text = player5score
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player4score > player3score Then
player8score = player7score
player7score = player6score
player6score = player5score
player5score = player4score
p8name = p7name
p7name = p6name
p6name = p5name
p5name = p4name
PlayerFourRank.Text = p4name
PlayerFiveRank.Text = p5name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P4Score.Text = player4score
P5Score.Text = player5score
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player5score > player4score Then
player8score = player7score
player7score = player6score
player6score = player5score
p8name = p7name
p7name = p6name
p6name = p5name
PlayerFiveRank.Text = p5name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P5Score.Text = player5score
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player6score > player5score Then
player8score = player7score
player7score = player6score
p8name = p7name
p7name = p6name
PlayerSixRank.Text = p6name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P6Score.Text = player6score
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player7score > player6score Then
player8score = player7score
p8name = p7name
PlayerSevenRank.Text = p7name
PlayerEightRank.Text = p8name
P7Score.Text = player7score
P8Score.Text = player8score
Exit Sub
End If
If player8score > player7score Then
player8score = player8score
p8name = p8name
PlayerEightRank.Text = p8name
P8Score.Text = player8score
Exit Sub
End If
End Sub
Any help would be GREATLY GREATLY appreciated....i'm ripping my hair out on this!
Thanks!
-
March 19th, 2015, 02:15 PM
#2
Re: Help With High Score Leaderboard
This is the Design view for it
-
March 20th, 2015, 08:36 AM
#3
Re: Help With High Score Leaderboard
Ok I got the scores working properly now i just need the name textboxes to follow their correct scores. Any ideas how i can do this?
This is my code:
Private Sub RankScoresBtn_Click(sender As Object, e As EventArgs) Handles RankScoresBtn.Click
Dim boxes() As TextBox = {P1Score, P2Score, P3Score, P4Score, P5Score, P6Score, P7Score, P8Score}
Dim score(boxes.Length - 1) As Integer
For i As Integer = 0 To boxes.Length - 1
Integer.TryParse(boxes(i).Text, score(i))
Next
Array.Sort(score)
Array.Reverse(score)
For i As Integer = 0 To boxes.Length - 1
boxes(i).Text = score(i).ToString
Next
End Sub
-
March 28th, 2015, 09:33 PM
#4
Re: Help With High Score Leaderboard
Why not use a list or listview or grid view instead of text boxes?
Always use [code][/code] tags when posting code.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|