94 lines
2.4 KiB
Text
94 lines
2.4 KiB
Text
|
|
Sub Jugador_elige(secuencia As String)
|
|||
|
|
Dim As String eleccion
|
|||
|
|
Dim As Byte valido, i
|
|||
|
|
Do
|
|||
|
|
valido = True
|
|||
|
|
Print !"\nIngresa una secuencia de 3 opciones, cada una de ellas H o T:";
|
|||
|
|
Input " > ", secuencia
|
|||
|
|
If Len(secuencia) <> 3 Then valido = False
|
|||
|
|
If valido Then
|
|||
|
|
For i = 1 To 3
|
|||
|
|
eleccion = Mid(Ucase(secuencia), i, 1)
|
|||
|
|
If eleccion <> "H" And eleccion <> "T" Then valido = False
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Loop Until valido
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Function Aleatorio() As String
|
|||
|
|
Dim As Byte eleccion, i
|
|||
|
|
Dim As String tirada
|
|||
|
|
tirada = ""
|
|||
|
|
For i = 1 To 3
|
|||
|
|
eleccion = Rnd And 1
|
|||
|
|
If eleccion Then tirada += "H" Else tirada += "T"
|
|||
|
|
Next
|
|||
|
|
Return tirada
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
Function Optima(secuencia As String) As String
|
|||
|
|
If Mid(secuencia, 2, 1) = "H" Then
|
|||
|
|
Optima = "T" + Left(secuencia, 2)
|
|||
|
|
Else
|
|||
|
|
Optima = "H" + Left(secuencia, 2)
|
|||
|
|
End If
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
Randomize Timer
|
|||
|
|
Dim As String jugador, computador, otro
|
|||
|
|
Dim Shared As String secuencia
|
|||
|
|
Dim As Boolean ganador, valido
|
|||
|
|
Do
|
|||
|
|
Cls
|
|||
|
|
Color 11
|
|||
|
|
Print "*** Penney's Game ***" & Chr(10)
|
|||
|
|
Color 7
|
|||
|
|
Print "Cara eliges primero, cruz yo elijo primero."
|
|||
|
|
Print "Y es... ";
|
|||
|
|
Sleep 300
|
|||
|
|
Dim As Double ht: ht = Rnd(0 - Timer) And 1
|
|||
|
|
If ht Then
|
|||
|
|
Print "cara!"
|
|||
|
|
Jugador_elige(jugador)
|
|||
|
|
computador = Optima(jugador)
|
|||
|
|
Print !"\nYo elijo "; computador; !".\n"
|
|||
|
|
Else
|
|||
|
|
Print "cruz!"
|
|||
|
|
computador = Aleatorio
|
|||
|
|
Print !"\nYo elijo "; computador; !".\n"
|
|||
|
|
Jugador_elige(jugador)
|
|||
|
|
End If
|
|||
|
|
Print "Comenzando el juego ..."
|
|||
|
|
secuencia = ""
|
|||
|
|
ganador = False
|
|||
|
|
Do
|
|||
|
|
Sleep 200
|
|||
|
|
Dim As Integer lanzar = Rnd And 1
|
|||
|
|
If lanzar Then
|
|||
|
|
secuencia += "H"
|
|||
|
|
Print "H ";
|
|||
|
|
Else
|
|||
|
|
Print "T ";
|
|||
|
|
secuencia += "T"
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If Right(secuencia, 3) = computador Then
|
|||
|
|
Print !"\nGan‚!\n"
|
|||
|
|
ganador = True
|
|||
|
|
Else
|
|||
|
|
If Right(secuencia, 3) = jugador Then
|
|||
|
|
Print !"\nFelicidades! Ganaste.\n"
|
|||
|
|
ganador = True
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
Loop Until ganador
|
|||
|
|
Do
|
|||
|
|
valido = False
|
|||
|
|
Input "¨Otra ronda? (S/N) ", otro
|
|||
|
|
If Instr("SYN", Ucase(otro)) Then valido = True
|
|||
|
|
Loop Until valido
|
|||
|
|
Loop Until Ucase(otro) = "N"
|
|||
|
|
Print !"\nGracias por jugar!"
|
|||
|
|
Sleep
|
|||
|
|
End
|