Option Explicit
On Error Resume Next
Sub Usage()
WScript.Echo vbNewline & "Usage:"
WScript.Echo vbNewline & "CSCRIPT " & WScript.ScriptName & " diams fuel"
WScript.Echo vbNewline & "Arguments:"
WScript.Echo " diams: the number of diameters from the world surface"
WScript.Echo " fuel: 0 | 1"
WScript.Echo " 0: refined fuel"
WScript.Echo " 1: unrefined fuel"
WScript.Echo vbNewline & "Returns:"
WScript.Echo " *: ship destroyed"
WScript.Echo " S: safe jump"
WScript.Echo " M.1.2.3: misjump"
WScript.Echo " 1: distance in parsecs"
WScript.Echo " 2: direction"
WScript.Echo " 3: time in weeks"
WScript.Echo vbNewline & "Example:"
WScript.Echo vbNewline & "CSCRIPT " & WScript.ScriptName & " 100 0"
WScript.Echo "M.12.3.4"
WScript.Quit 1
End Sub
Function DieRoll(dice, sides)
Randomize Timer
Dim x, result
For x = 1 To dice
result = result + Int(Rnd * sides + 1)
Next
DieRoll = result
End Function
Function CheckJump(diameters, unrefined)
Dim result
result = DieRoll(2, 6)
If unrefined Then
result = result + 1
End If
If diameters < 10 Then
result = result + 15
ElseIf diameters < 100 Then
result = result + 5
End If
If result > 15 Then
CheckJump = "*"
ElseIf result > 12 Then
CheckJump = "M." & _
DieRoll(DieRoll(1, 6), 6) & "." & DieRoll(1, 6) & "." & DieRoll(1, 6)
Else
CheckJump = "S"
End If
End Function
Dim diam, fuel
diam = WScript.Arguments(0)
If Err.Number Then Usage()
If Not IsNumeric(diam) Then Usage()
fuel = WScript.Arguments(1)
If Err.Number Then Usage()
If Not IsNumeric(fuel) Then Usage()
WScript.Echo CheckJump(diam, fuel)
WScript.Quit 0