Dice game probabilities: Difference between revisions

no edit summary
(Dice game probabilities en BASIC256)
No edit summary
Line 46:
 
 
=={{header|BASIC256BASIC}}==
==={{header|BASIC256}}===
{{trans|Yabasic}}
<lang BASIC256>dado1 = 9: lado1 = 4
Line 87 ⟶ 88:
<pre>
Igual que la entrada de Yabasic.
</pre>
 
==={{header|FreeBASIC}}===
{{trans|Gambas}}
<lang freebasic>Dim As Integer lado, jugador1, jugador2, total1, total2, cont, i
Dim As Integer dado1 = 9, lado1 = 4
Dim As Integer dado2 = 6, lado2 = 6
 
Randomize Timer
 
Function Lanzamiento(dado As Integer, lado As Integer) As Integer
Dim As Short lanza, total
For lanza = 1 To dado
total += Int(Rnd * lado) + 1
Next lanza
Return total
End Function
 
For i = 0 To 1
For cont = 1 To 100000
jugador1 = Lanzamiento(dado1, lado1)
jugador2 = Lanzamiento(dado2, lado2)
If jugador1 > jugador2 Then
total1 += 1
Elseif jugador1 <> jugador2 Then
total2 += 1
End If
Next cont
Print Using "Lanzado el dado & veces"; (cont - 1)
Print "jugador1 con"; dado1; " dados de"; lado1; " lados"
Print "jugador2 con"; dado2; " dados de"; lado2; " lados"
Print Using "Total victorias jugador1 = & => #.#######"; total1; (total2 / total1)
Print "Total victorias jugador2 ="; total2
Print (cont - 1) - (total1 + total2); !" empates\n"
dado1 = 5: lado1 = 10
dado2 = 6: lado2 = 7
total1 = 0: total2 = 0
Next i
 
Sleep</lang>
{{out}}
<pre>
Lanzado el dado 100000 veces
jugador1 con 9 dados de 4 lados
jugador2 con 6 dados de 6 lados
Total victorias jugador1 = 57274 => 0.6237211
Total victorias jugador2 = 35723
7003 empates
 
Lanzado el dado 100000 veces
jugador1 con 5 dados de 10 lados
jugador2 con 6 dados de 7 lados
Total victorias jugador1 = 64093 => 0.4893826
Total victorias jugador2 = 31366
4541 empates
</pre>
 
==={{header|Yabasic}}===
{{trans|FreeBASIC}}
<lang Yabasic>dado1 = 9: lado1 = 4
dado2 = 6: lado2 = 6
total1 = 0: total2 = 0
 
for i = 0 to 1
for cont = 1 to 100000
jugador1 = lanzamiento(dado1, lado1)
jugador2 = lanzamiento(dado2, lado2)
if jugador1 > jugador2 then
total1 = total1 + 1
elseif jugador1 <> jugador2 then
total2 = total2 + 1
endif
next cont
print "Lanzado el dado ", (cont - 1), " veces"
print "jugador1 con ", dado1, " dados de ", lado1, " lados"
print "jugador2 con ", dado2, " dados de ", lado2, " lados"
print "Total victorias jugador1 = ", total1, " => ", (total2 / total1)
print "Total victorias jugador2 = ", total2
print (cont - 1) - (total1 + total2), " empates\n"
dado1 = 5: lado1 = 10
dado2 = 6: lado2 = 7
total1 = 0: total2 = 0
next i
 
sub lanzamiento(dado, lado)
local lanza, total
for lanza = 1 to dado
total = total + int(ran(lado))
next lanza
return total
end sub</lang>
{{out}}
<pre>
Igual que la entrada de FreeBASIC.
</pre>
 
Line 302 ⟶ 403:
0.64174
</pre>
 
 
=={{header|FreeBASIC}}==
{{trans|Gambas}}
<lang freebasic>Dim As Integer lado, jugador1, jugador2, total1, total2, cont, i
Dim As Integer dado1 = 9, lado1 = 4
Dim As Integer dado2 = 6, lado2 = 6
 
Randomize Timer
 
Function Lanzamiento(dado As Integer, lado As Integer) As Integer
Dim As Short lanza, total
For lanza = 1 To dado
total += Int(Rnd * lado) + 1
Next lanza
Return total
End Function
 
 
For i = 0 To 1
For cont = 1 To 100000
jugador1 = Lanzamiento(dado1, lado1)
jugador2 = Lanzamiento(dado2, lado2)
If jugador1 > jugador2 Then
total1 += 1
Elseif jugador1 <> jugador2 Then
total2 += 1
End If
Next cont
Print Using "Lanzado el dado & veces"; (cont - 1)
Print "jugador1 con"; dado1; " dados de"; lado1; " lados"
Print "jugador2 con"; dado2; " dados de"; lado2; " lados"
Print Using "Total victorias jugador1 = & => #.#######"; total1; (total2 / total1)
Print "Total victorias jugador2 ="; total2
Print (cont - 1) - (total1 + total2); !" empates\n"
dado1 = 5: lado1 = 10
dado2 = 6: lado2 = 7
total1 = 0: total2 = 0
Next i
 
Sleep</lang>
{{out}}
<pre>
Lanzado el dado 100000 veces
jugador1 con 9 dados de 4 lados
jugador2 con 6 dados de 6 lados
Total victorias jugador1 = 57274 => 0.6237211
Total victorias jugador2 = 35723
7003 empates
 
Lanzado el dado 100000 veces
jugador1 con 5 dados de 10 lados
jugador2 con 6 dados de 7 lados
Total victorias jugador1 = 64093 => 0.4893826
Total victorias jugador2 = 31366
4541 empates
</pre>
 
 
=={{header|Gambas}}==
Line 2,211 ⟶ 2,251:
0.57314407678298
0.64278862871763
</pre>
 
 
=={{header|Yabasic}}==
{{trans|FreeBASIC}}
<lang Yabasic>dado1 = 9: lado1 = 4
dado2 = 6: lado2 = 6
total1 = 0: total2 = 0
 
for i = 0 to 1
for cont = 1 to 100000
jugador1 = lanzamiento(dado1, lado1)
jugador2 = lanzamiento(dado2, lado2)
if jugador1 > jugador2 then
total1 = total1 + 1
elseif jugador1 <> jugador2 then
total2 = total2 + 1
endif
next cont
print "Lanzado el dado ", (cont - 1), " veces"
print "jugador1 con ", dado1, " dados de ", lado1, " lados"
print "jugador2 con ", dado2, " dados de ", lado2, " lados"
print "Total victorias jugador1 = ", total1, " => ", (total2 / total1)
print "Total victorias jugador2 = ", total2
print (cont - 1) - (total1 + total2), " empates\n"
dado1 = 5: lado1 = 10
dado2 = 6: lado2 = 7
total1 = 0: total2 = 0
next i
 
sub lanzamiento(dado, lado)
local lanza, total
for lanza = 1 to dado
total = total + int(ran(lado))
next lanza
return total
end sub</lang>
{{out}}
<pre>
Igual que la entrada de FreeBASIC.
</pre>
 
2,148

edits