Skapa slumpmässig spelordning

I detta sista tips om spelsystem belyses hur vi kan skapa en slumpmässig spelordning.

Exemplet har sin utgångspunkt i de två föregående tipsen.

Vill du få reda på hur vi :


Exempelfilen återfinns under programmeringssektionen på Download-sidan och kan nås
här.


Följande uppställning visar utgångspunkten för exemplet:

 

I kolumnerna G och H finns följande formler (med felhantering):

 

Följande procedur skapar:

Option Explicit
Sub Slumpmassig_Spelordning()
Dim rnOmrade As Range
Dim rnCell As Range
Dim Num() As Byte
Dim i As Byte
Dim iPlocka As Byte
Dim iAntal As Byte

Application.ScreenUpdating = False

Set rnOmrade = ActiveSheet.Range("B2", Range("B2").End(xlDown))
iAntal = rnOmrade.Rows.Count
Set rnCell = ActiveSheet.Range("E2")


'Skapa antal matcher
For i = 1 To iAntal
      rnCell.Offset(i - 1, 0).Value = i
      rnCell.Offset(i - 1, -4).Value = i
Next i


'Då vi inte på förhand vet antal matcher måste vi dels läsa in antal rader
'vilket sker med iAntal och dels dimensionera om arrayen mha av denna
'uppgift.
ReDim Num(iAntal)

For i = 1 To iAntal
    Num(i) = i
Next

'Skapa den slumpmässiga spelordningen
For i = 1 To iAntal
     iPlocka = 1 + Int(Rnd * (iAntal + 1 - i))
     rnCell.Offset(i - 1, 1).Value = Num(iPlocka)
     Num(iPlocka) = Num(iAntal + 1 - i)
Next i

Application.ScreenUpdating = True
End Sub

 

Så här ser resultatet ut efter det att proceduren har körts:

 

Några avslutande tips: