Sorting 如何在VBScript中根据两个值对播放器进行排序
在我的程序中,我想根据两个值(分数和以前的排名)对球员进行排序,我已经设法根据刚才的分数进行排序 我想重新排序,如果一个或多个球员有相同的分数,但球员与最低的前排名应该显示第一Sorting 如何在VBScript中根据两个值对播放器进行排序,sorting,vbscript,Sorting,Vbscript,在我的程序中,我想根据两个值(分数和以前的排名)对球员进行排序,我已经设法根据刚才的分数进行排序 我想重新排序,如果一个或多个球员有相同的分数,但球员与最低的前排名应该显示第一 dim mPlayer(30) Class Player dim score dim name dim lowestRank End Class dim sorted, i dim tempPlayer Set tempPlayer = New Player sorted = False Do
dim mPlayer(30)
Class Player
dim score
dim name
dim lowestRank
End Class
dim sorted, i
dim tempPlayer
Set tempPlayer = New Player
sorted = False
Do Until sorted
sorted = True
For i = 0 To mNumPlayers - 2
If (mPlayer(i + 1).score > mPlayer(i).score) Then
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
End If
Next
Loop
Set temptempPlayer = Nothing
lstPlayers.Clear()
For i = 0 To mPlayer - 1
lstPlayers.Items.add(mPlayer(i).name)
Next
阅读文档。语法:
适用于您的以下情况:
If (mPlayer(i + 1).score > mPlayer(i).score) Then
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
Else If (mPlayer(i + 1).score = mPlayer(i).score) Then
''' not sure about Comparison Operator in next condition
If (mPlayer(i + 1).lowestRank < mPlayer(i).lowestRank) Then
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
End If
End If
阅读文档。语法:
适用于您的以下情况:
If (mPlayer(i + 1).score > mPlayer(i).score) Then
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
Else If (mPlayer(i + 1).score = mPlayer(i).score) Then
''' not sure about Comparison Operator in next condition
If (mPlayer(i + 1).lowestRank < mPlayer(i).lowestRank) Then
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
End If
End If
尝试按
100000*mPlayer(i)排序。得分±mPlayer(i)。LowerStrank
而不是按裸mPlayer(i)排序。得分
,其中替换100000
为最大得分
值。但是,看看……没有最高分数。我将尝试mPlayer(I).得分±mPlayer(I).按100000*mPlayer(I).得分±mPlayer(I).低层排序,而不是按裸mPlayer(I).得分
替换100000
最大得分
值。但是,看看……没有最高分数。我将尝试mPlayer(I)。分数±mPlayer(I)。LowerStrank
If (mPlayer(i + 1).score > mPlayer(i).score) Then
swapPlayers
Else If (mPlayer(i + 1).score = mPlayer(i).score) Then
''' not sure about Comparison Operator in next condition
If (mPlayer(i + 1).lowestRank < mPlayer(i).lowestRank) Then
swapPlayers
End If
End If
' remaining script statements here
Sub swapPlayers
' swap
sorted = False
Call CopytempPlayerData(tempPlayer, mPlayer(i))
Call CopytempPlayerData(mPlayer(i), mPlayer(i + 1))
Call CopytempPlayerData(mPlayer(i + 1), tempPlayer)
End Sub