login  Naam:   Wachtwoord: 
Registreer je!
 Forum

kansen niet laten beinvloeden door aantal klikken (Opgelost)

Offline Martijn - 04/01/2009 16:25 (laatste wijziging 04/01/2009 16:26)
Avatar van MartijnCrew PHP dat was de beste titel die ik kon verzinnen.

Ik heb een float (dus een decimaal getal bv 51.3). DIe flaot is hoeveel je gezocht bent. Ik wil maken dat als je 50+ bent, kans hebt dat ze je oppakken. En die kans moet uiteraard groter zijn als je 95% wanted bent.

Mijn probleem: Hoe maak ik dat je hoe meer wanted je hebt, hoe groter de kans is dat ze je pakken?
Tricky part: Stel persoon A is 3x zo actief als persoon B, dan kan een simpele rand(0,$kans) niet, want dan loopt persoon A 3x zoveel kans op opgepakt worden...
edit: want ik werk met div 'frames' , dus de pagina herlaad elke klik

Ik hoef niet persé codes enzo, simpele gedachten schetsen zijn voldoende 

Ik zat iets te denken met sessions een time() wegschrijven om op dat tijdstip iets te laten gebeuren, maar de $wanted kan elke keer stijgen, hoe corrigeer je dat dan weer? 

Mssn weet 1 van jullie iets 

4 antwoorden

Gesponsorde links
Offline vinTage - 04/01/2009 16:29 (laatste wijziging 04/01/2009 16:31)
Avatar van vinTage Nieuw lid $pak_kans = rand(50, $wanted / $pagehits);

iets in die trent ?

edit: $paghist = natuurlijk ook weer een rekensommetje...en niet letterlijk, anders zou ja na 10000000 refreshes nagenoeg geen $pak_kans meer hebben.
Offline Martijn - 04/01/2009 16:31 (laatste wijziging 04/01/2009 16:36)
Avatar van Martijn Crew PHP offtopic: lol at online/offline

ontopic: dat zou wel iets kunne zijn ja. Ff denken hoe k dat kan utiwerken

edit op je edit: ik denk dat als je de pagehits++ uitvoert NA de kansberekening, je niet 'immuun' kunt worden
Offline Joost - 04/01/2009 16:37 (laatste wijziging 04/01/2009 16:50)
Avatar van Joost PHP expert
  1. $busted = false;
  2.  
  3. if($wanted >= 50 && $_SESSION['time_busted'] < time()){
  4. $num = rand(50, 100);
  5. if($num <= $wanted){
  6. // busted
  7. $busted = true;
  8. }
  9. }
  10.  
  11.  
  12. if($busted){
  13. $factor = ((100-$wanted)/100) + 0.5;
  14. $_SESSION['time_busted'] = (time() + round($factor * 300, 0));
  15. // busted acties
  16. }

Iets in die zin?
Offline Martijn - 04/01/2009 16:39 (laatste wijziging 04/01/2009 19:29)
Avatar van Martijn Crew PHP maar als ik nu 3x de pagina open, gaat regel 5 3x, dus 3x kans op een bust

of je moet iets doen met die session time die ik verkeerd begrijp 
-------------------------------

heb nu dit, komt volgens mij wel aardig in de buurt. Ik raakte steeds meer kwijt waar ik mee bezig was in mn hoofd, dus geloof dat dit klopt
  1. <?php
  2. if(!isset($_SESSION['bustStart'])){$_SESSION['bustStart'] = time();}
  3. if(!isset($_SESSION['vluchten'])) {$_SESSION['vluchten'] = time()*10;}
  4. if(!isset($_SESSION['vluchtenSave'])) {$_SESSION['vluchtenSave'] = FALSE;}
  5. if(!isset($_SESSION['showmsg'])) {$_SESSION['showmsg'] = "nee";}
  6.  
  7. $starttijd = 20000; // 20000sec = 5.4 uur
  8. $tijdVanafStart=$starttijd-(($stat['wanted']/100)*$starttijd);
  9.  
  10. $_SESSION['bustEind']=$_SESSION['bustStart']+$tijdVanafStart;
  11.  
  12. if($_SESSION['bustEind']<time() && $stat['wanted']<100 && $stat['bezigmet']=="niets" && $_SESSION['vluchten']>time()){
  13. if($_SESSION['vluchtenSave'] == FALSE){
  14. $_SESSION['vluchten'] = time()+180;
  15. $_SESSION['vluchtenSave'] = TRUE; //opslaan dat t niet nog een keer hoeft
  16. } //geeft je 3min om te vluchten
  17. $_SESSION['showmsg']="ja";
  18. }
  19. elseif($stat['wanted']>=100 || $_SESSION['vluchten'] <time() && $stat['bezigmet']!="busted"){
  20. mysql_query("UPDATE members SET wanted=".wanted('min').",bezigmet='busted'
  21. WHERE id=".$stat['id']." LIMIT 1") or die(mysql_error());
  22. $gevangentijd = time()+100+(10*$stat['rank']);
  23. mysql_query("UPDATE tijden SET busted=".$gevangentijd." WHERE id=".$stat['id']." LIMIT 1") or die(mysql_error());
  24. $_SESSION['bustStart']=time();//resetten, anders word je steeds opgepakt
  25. }//--einde busted
  26. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s