Avatar billede kaptajnknas Nybegynder
29. september 2003 - 15:36 Der er 22 kommentarer og
2 løsninger

Random tal

Hej. jeg har et lille script som finder et tilfældigt tal mellem 1 og 100
Jeg vil gerne ha at tallet 50 vises hver gang siden loades, er det muligt i dette script?

<%
randomize
tal = int((Rnd * 100) + 1)

if isnumeric(session("tal")) then
response.write (""&tal&"")
%>
Avatar billede jpvj Nybegynder
29. september 2003 - 15:37 #1
Hvis du vil have tallet 50 vises hver gang siden loades... hvorfor skal det så være random?

ASP filen bliver kun eksekveret på serveren når den requestes, dvs. 1 gang når siden åbnes...
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 15:47 #2
Okay, jeg fik ikke hele scriptet med.
Det er faktisk et lille gætte spil, hvor man gætter om tallet bliver større eller mindre og det virker også fint, men jeg vil bare gerne ha at tallet 50 altid vises som start når siden loades, men det sker jo flere gange når man gætter loades siden jo igen..Hm

Scritet ser sådan ud:


<%

randomize
tal = int((Rnd * 100) + 1)

if isnumeric(session("tal")) then
response.write ("?")

SELECT CASE request.querystring("mode")

CASE "mindre"

if tal < session("tal") then
response.write("rigtig")

else

response.write("forkert")
               
end if

CASE "mere"

if tal > session("tal") then
response.write("rigtig")

else
response.write("forkert")

end if

%>
Avatar billede eagleeye Praktikant
29. september 2003 - 16:16 #3
Så tjek om session indeholder et tal og gør den det så man i gang med spillet eller er det en ny spiller:

Så disse to linjer:
randomize
tal = int((Rnd * 100) + 1)


Bliver til:

if isnumeric(session("tal")) then
  'find nyt tal
  randomize
  tal = int((Rnd * 100) + 1)
else
  'ny start med 50
  tal = 5
end if
Avatar billede netro Nybegynder
29. september 2003 - 16:40 #4
isnumeric(CStr(session("tal"))) - ellers kan den returnere sand ved en manglende værdi...
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 17:56 #5
>> eagleeye, finder stadig random ved load af siden
Avatar billede netro Nybegynder
29. september 2003 - 17:58 #6
Så gør du vist heller ikke helt som beskrevet - eller også lever din session stadig.
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 18:12 #7
Har prøvet med:
og får denne fejl:  Expected end of statement
isnumeric(CStr(session("tal"))) then
--------------------------------^


isnumeric(CStr(session("tal"))) then
  'find nyt tal
  randomize
  tal = int((Rnd * 100) + 1)
else
  'ny start med 50
  tal = 50
end if
Avatar billede netro Nybegynder
29. september 2003 - 18:16 #8
IF isnumeric(session("tal")) then

(!)
Avatar billede netro Nybegynder
29. september 2003 - 18:17 #9
IF isnumeric(CStr(session("tal"))) then
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 18:35 #10
Nope, kører stadig random ved load af siden
Avatar billede netro Nybegynder
29. september 2003 - 18:40 #11
Prøv at udskrive følgende i toppen og fortæl, hvad der står, når du lige har åbnet browseren. Så skal der gerne stå "False".

Response.Write """" & isnumeric(CStr(session("tal"))) & """"
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 18:48 #12
okay, når jeg logger ind og åbner spillet (popup) virker det, tallet 50 vises, fint nok, men hvis jeg lukker vinduet, åbner det igen er det et tilfældigt tal, jeg er nød til at logge ud og ind igen så virker det.

Det skal meget gerne kunne virker, hvis spillet åbnes, lukkes og åbnes igen (for at undgå snyd i spillet)

Kan det laves?
Avatar billede netro Nybegynder
29. september 2003 - 18:59 #13
Så vil jeg foreslå dig at dig at medsende en værdi i en querystring, når vinduet åbnes.
Hvis du f.eks. kalder det med popup.asp så kald det i stedet med popup.asp?action=new
Herefter kan du så opstille følgende betingelse:

If Request.Querystring("action") = "new" Or Not isnumeric(CStr(session("tal"))) then
  'find nyt tal
  randomize
  tal = int((Rnd * 100) + 1)
else
  'ny start med 50
  tal = 50
end if
Avatar billede netro Nybegynder
29. september 2003 - 19:02 #14
Vent lidt - det skal vel være lige omvendt, ik'?

If Request.Querystring("action") = "new" Or Not isnumeric(CStr(session("tal"))) then
  'ny start med 50
  tal = 50
else
  'find nyt tal
  randomize
  tal = int((Rnd * 100) + 1)
end if
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 19:19 #15
Det har jeg så prøvet... desværre uden resultat
Jeg kalder min popup således:
java script:myOpen('spil.asp?action=new');
Avatar billede netro Nybegynder
29. september 2003 - 19:34 #16
Ja, det skal selvølgelig bare være:

If Request.Querystring("action") = "new" Then

- prøv lige det.
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 19:43 #17
Ser så sådan ud, men duer ikke :-(
og kalder siden med: java script:myOpen('spil.asp?action=new');

If Request.Querystring("action") = "new" then
  'ny start med 50
  tal = 50
else
  'find nyt tal
  randomize
  tal = int((Rnd * 100) + 1)
end if
Avatar billede netro Nybegynder
29. september 2003 - 19:51 #18
Og du udskriver naturligvis først tallet efter ovenstående, ik'?
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 19:53 #19
jo
Avatar billede netro Nybegynder
29. september 2003 - 19:55 #20
Det lyder en anelse mystisk.

Prøv så at udskrive følgende i toppen og fortæl, hvad der står - lige når vinduet åbnes.

Response.Write Request.ServerVariables("Query_String")
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 20:00 #21
STOP STOP, tror det er her det er galt... vender tilbage
Avatar billede netro Nybegynder
29. september 2003 - 20:02 #22
Jeg har snart heller ikke andre bud...
Avatar billede kaptajnknas Nybegynder
29. september 2003 - 22:22 #23
Det virker fint :-)
Spillet åbner i frames og scriptet ligger ikke i spil.asp , men i spilproc.asp , det var her jeg lavede fejlen.
Men menge tak for hjælpen.
Avatar billede netro Nybegynder
29. september 2003 - 22:27 #24
Velbekomme.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester