webForumDet fria alternativet

Utmaningen för den envise

ASP

2 svar · 355 visningar · startad av Marcus_site

Medlem sedan mars 20022 inlägg
Frågan#1

Tjenare.

Jag spelar mycket rollspel och har tänkt att jag ska göra en slags tärning en simpel till en början.

SImplaste är ju att göra så här omjag ska ha tre st vanliga tärningar.
<%
din slumptal1, slumptal2, slumptal3
slumptal1 = int(rnd * 6 +1)
slumptal2 = int(rnd * 6 +1)
slumptal3 = int(rnd * 6 +1)
%>

Nu till det som jag inte får ihopoch frågan är omdet går.

Jag vill att för varje sexa som blir (slumptal1 = "6") ska två nya tärningar kastas och räknas ihop med dem två som inte blev 6 or

t.ex.
slumptal1 = "6"
slumptal2 = "3"
slumptal3 = "5"

Då ska ju slumptal1 kastas om somtvå tärningar och sen ska dessa ny tärningar läggas ihop med slumptal2 och 3.

om dem nya man kastar blir sexa igen ska proceduren göras om och läggas ihop med alla tal innan.

DEn som klarar det här anser jag är mycket smart!

Lycka till..

Marcus Fagerberg............MASSE

Marcus@Fagerberg.as

Medlem sedan aug. 2001112 inlägg
#2

Det här är kanske en lösning....

Det här är en lösning på problemet om jag har förstått det rätt...


<% @ Language = VBScript %>
<%
'Option Explicit
With Response
	.Buffer = True
	.Expires = 0
	.Clear
End With

Public function plussa(vilken,nummer)
randomize
Response.Write "<br>tarning "&vilken&"--->"&nummer
	ettan=0
	tvaan=0
if nummer = 6 then
	Response.Write"<br>Här är en sexa, kastar två nya: "
	ettan=plussa(vilken,int(rnd * 6+1))
	tvaan=plussa(vilken,int(rnd * 6+1))
	
End if
plussa=nummer + ettan + tvaan
End function

Sub tarning()
randomize

slumptal1 = plussa(0,int(rnd * 6+1))
slumptal2 = plussa(1,int(rnd * 6+1))
slumptal3 = plussa(2,int(rnd * 6+1))

total=slumptal1+slumptal2+slumptal3
Response.Write"<br> totalt:"&total&""
End Sub

%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>

<P><%Tarning%></P>

</BODY>
</HTML>

@EchO

Medlem sedan juni 20008 205 inlägg
#3

Åhå, lite rekursion!

   
function throwDice
 Dim eyes   
 eyes = int(rnd * 6 +1)
 if eyes = 6 then
  eyes = throwDice() + throwDice()
 end if
 return eyes
end function   

Response.Write "Tre kast ger: " & (throwDice() + throwDice() + throwDice())

Borde funka. Typ.

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)