Here you go :)
Graphics 640,480,16,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Type Player
Field name$
Field id
End Type
;just some names :)
Dim name$(9)
name$(0)="Jacob"
name$(1)="Emily"
name$(2)="Michael"
name$(3)="Hannah"
name$(4)="Joshua"
name$(5)="Madison"
name$(6)="Matthew"
name$(7)="Samantha"
name$(8)="Andrew"
name$(9)="Ashley"
;create ten players
For l=1 To 10
p.Player=New Player
p\name$=name$(l-1) ;add name :)
p\id=Int(Rnd(0,100000)) ; just a random number
Next
unsort=1
Repeat
Cls
Text 320,10,"Press Space to toggle bestween to sort by name or id",1
If KeyHit(57)
unsort=0
sort=1-sort
If sort=0
SortPlayersID() ; sort by id
Else
SortPlayersNAME(); sort by name
EndIf
EndIf
drawPlayer()
If unsort=1
Text 240,400,"Players unsorted",1
Else
If sort=0
Text 240,400,"Sorted by id",1
Else
Text 240,400,"Sorted by names",1
EndIf
EndIf
Flip
Until KeyDown(1)
End
Function drawPlayer()
For p.Player=Each Player
Text 50,40+n*(FontHeight()+4),p\name$
Text 250,40+n*(FontHeight()+4),"id :"+p\id
n=n+1
Next
End Function
;Snippet modified from code acrhives :)
Function SortPlayersID()
b.Player=First Player
flag=True
While flag
flag=False
bb.Player=Last Player
While bb<>b
bbb.Player=Before bb
If bbb=Null Exit
If bb\id<bbb\id ;<------------- sort by ids
Insert bbb After bb
flag=True
Else
bb=bbb
EndIf
Wend
b=After bb
Wend
End Function
;Snippet modified from code acrhives :)
Function SortPlayersNAME()
b.Player=First Player
flag=True
While flag
flag=False
bb.Player=Last Player
While bb<>b
bbb.Player=Before bb
If bbb=Null Exit
If bb\name$<bbb\name$ ;<------------- sort by name$
Insert bbb After bb
flag=True
Else
bb=bbb
EndIf
Wend
b=After bb
Wend
End Function
|