Toon posts:

Dobbelsteen-script - meerdere keren gooien

Pagina: 1
Acties:
  • 1.704 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik probeer een heel simpel dobbelsteen script te maken maar dit levert toch moeilijkheden op. De bedoeling is dat men kan klikken op een button, vervolgens komt er een javascript alert met een random getal.

Als ik nu nog een keer gooi (dus druk op de knop) is dit getal natuurlijk hetzelfde omdat rand() al aangeroepen is, terwijl ik natuurlijk een nieuw getal wil. Dus wil ik rand() opnieuw aanroepen als er op de knop gedrukt is, met m'n huidige code wil dit echter nog niet..dit zal wel komen omdat PHP server-side is maar als ik de pagina refresh met <META HTTP-EQUIV etc..wil het ook niet, iemand raad?

Ik heb ondertussen al wel een javascriptje gevonden maar vraag me toch af of dit met php niet mogelijk is.

code:
1
2
3
4
5
6
7
8
9
10
11
<?
$submit=0;
?>
<input type=button value="Gooi!" onClick="alert('Je gooit <? echo rand(1,6); $submit=1;?>.');">

<?
if ($submit==1) {
rand(1,6);
$submit=0;
}
?>

  • whoami
  • Registratie: December 2000
  • Laatst online: 07-12 23:28
Je moet je randomizer seeden, ik weet niet welke method je daar moet voor aanroepen, maar dat zal ws randomize() oid zijn.
Die moet je eerst aanroepen voordat je de eerste keer rand() aanroept.

https://fgheysels.github.io/


  • reminder
  • Registratie: Maart 2001
  • Laatst online: 04-12 11:26

reminder

oi....

Je gebruikt PHP en Javascript door elkaar. Aangezien PHP een serverside taal is zal deze dus alleen op het moment van de aanvraag 'gerandomized' worden en pas op het moment dat je de PHP pagina opnieuw aanvraagt krijg je een nieuwe random waarde.

Het seeden van rand met PHP is niet (meer) nodig sinds 4.2.0.

Je zou denk het beste javascript kunnen gebruiken voor het maken van een random waarde. Als je toch PHP wil gebruiken zou je nog mt_rand kunnen proberen, deze is sneller en zou betere random waardes moeten opleveren.

[ Voor 35% gewijzigd door reminder op 17-01-2005 15:06 ]

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Lijkt me dat je meer wat zoekt wat puur javascript is:


JavaScript:
1
var i = Math.round(6*Math.random())

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Heb nu veranderd. Kun je beide gevalletjes zien.

Verwijderd

Topicstarter
Thx, dit zocht ik, blijkbaar was ik opzoek naar de regel
code:
1
document.location = '<?php echo($_SERVER['PHP_SELF']); ?>';
om op de juiste manier te refreshen.

Het helemaal met javascript doen werkt ook maar dit snap ik tenminste...;)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op maandag 17 januari 2005 @ 16:17:
Heb nu veranderd. Kun je beide gevalletjes zien.
Joepie.... Ikheb een 0 gegooid met JS... Errmmm hoe werkt dat?

Programmer - an organism that turns coffee into software.


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

http://www.netmastering.nl/yahtzee/
Eerrug IE Only, en niet helemaal af (Je moet toch wat als je je verveelt op je vakantie :X )


Maar misschien heb je er wat aan als je de source bekijkt :)

Stop uploading passwords to Github!


  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 14:45
Dat is een beetje een nadeel van deze code dat je ook nul kan gooien

code:
1
var i = Math.round(6*Math.random());


je kan het beter veranderen in


code:
1
var i = Math.round(5*Math.random())+1;

  • sjhgvr
  • Registratie: Januari 2004
  • Laatst online: 10:31
Dit topic van je werd net gesloten, dus ik dacht ik plaats mijn reactie maar hiero.

Zoiets:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if (isset($_SESSION['rand'] && isset($_GET['rand']) && $_GET['rand'] == $_SESSION['rand']) {
   $_SESSION['score']--;
} else {
  $_SESSION['rand'] = md5(rand(1,10000)); 
}
<head>
<script name="JavaScript">
            function gooienVanDobbelsteen()
            {
                alert('Gegooid aantal ogen: <?php echo rand($x,$y); ?>');
                
                document.location = '<?php echo $_SERVER['PHP_SELF'] . "?rand=" . $_SESSION['rand'] ; ?> ';
                
            } 

</script>
</head>
<body>
<input type="button" value="Gooi dobbelsteen" onClick="gooienVanDobbelsteen();">
</body>
</html>


Zou moetten werken, (ongetest).

[ Voor 62% gewijzigd door sjhgvr op 21-01-2005 14:21 ]

oisd.nl


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:19

Creepy

Tactical Espionage Splatterer

DapinododiadeaL schreef op vrijdag 21 januari 2005 @ 14:04:
Je had net dus een topic geopend met daarin PHP in een javascript, wat niet ging op jou manier.
Toen ik daarop wilde reageren, was dat topic net gesloten, vandaar dat ik dat bericht hier ff plaats.
Tjah. Aardig van je dat je alsnog een oplossing post, maar het blijft Javascript, iets wat in Webdesign & Graphics hoort.
Daarnaast hoort dit antwoord al helemaal niet in dit topic :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.