Penney's game: Difference between revisions
Content added Content deleted
(Add Rust implementation) |
(Penney's game en FreeBASIC) |
||
Line 1,138: | Line 1,138: | ||
The computer won. |
The computer won. |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|BBC BASIC}} |
|||
<lang freebasic> |
|||
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 |
|||
</lang> |
|||
=={{header|Go}}== |
=={{header|Go}}== |