51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
' Intérprete de HQ9+
|
|
' FB 1.05.0 Win64
|
|
'
|
|
|
|
Dim Shared codigo As String: codigo = ""
|
|
|
|
Function HQ9plus(codigo As String) As String
|
|
Dim As Byte botellas, cont
|
|
Dim acumulador As Uinteger = 0
|
|
Dim HQ9plus1 As String
|
|
For cont = 1 To Len(codigo)
|
|
Select Case Ucase(Mid(codigo, cont, 1))
|
|
Case "H"
|
|
HQ9plus1 = HQ9plus1 + "Hello, world!"
|
|
Case "Q"
|
|
HQ9plus1 = HQ9plus1 + codigo
|
|
Case "9"
|
|
For botellas = 99 To 1 Step -1
|
|
HQ9plus1 = HQ9plus1 + Str(botellas) + " bottle"
|
|
If (botellas > 1) Then HQ9plus1 = HQ9plus1 + "s"
|
|
HQ9plus1 = HQ9plus1 + " of beer on the wall, " + Str(botellas) + " bottle"
|
|
If (botellas > 1) Then HQ9plus1 = HQ9plus1 + "s"
|
|
HQ9plus1 = HQ9plus1 + " of beer," + Chr(13) + Chr(10) +_
|
|
"Take one down, pass it around, " + Str(botellas - 1) + " bottle"
|
|
If (botellas > 2) Then HQ9plus1 = HQ9plus1 + "s"
|
|
HQ9plus1 = HQ9plus1 + " of beer on the wall." + Chr(13) + Chr(10) + Chr(10)
|
|
Next botellas
|
|
HQ9plus1 = HQ9plus1 + "No more bottles of beer on the wall, no more bottles of beer." +_
|
|
Chr(13) + Chr(10) + "Go to the store and buy some more, 99 bottles of beer on the wall."
|
|
Case "+"
|
|
acumulador = (acumulador + 1)
|
|
Case "E"
|
|
End
|
|
Case Else
|
|
'no es una instrucción válida
|
|
End Select
|
|
If Mid(codigo, cont, 1) <> "+" Then
|
|
HQ9plus1 = HQ9plus1 + Chr(13) + Chr(10)
|
|
End If
|
|
Next cont
|
|
HQ9plus = Left(HQ9plus1, (Len(HQ9plus1) - 2))
|
|
End Function
|
|
|
|
|
|
Cls
|
|
Do
|
|
Input codigo
|
|
Print HQ9plus(codigo): Print
|
|
Loop While Inkey <> Chr(27)
|
|
End
|