daviskrex Posted June 28, 2009 Report Share Posted June 28, 2009 (edited) Sveiki, aizgāja širmis domāju uztaisīt kaut kādu ļevo web spēli. Spēle balstīta uz jūzeru enerģiju. Mēģināju uztaisīt tās enerģijas automātisku reģenerācijas skriptu, bet netieku gudrs, kā lai izlabo šīs rindas. $time = time(); $i = 0; while($timelast < $time){ $timelast + $inteval; $i++; } print $i; Tas ir domāts tā - cik reizes intervāls ir nogaidīts, par kuru dod šo 1 enerģijas punktu, tik arī saskaita. Bet lieta tāda, ka šajā procesā man izmet - Fatal error: Maximum execution time of 30 seconds exceeded in C:\inetpub\wwwroot\game\profile.php on line 33 Būtu pateicīgs, ja kāds varētu dot padomu! :) Jau iepriekš pateicos. Edited June 28, 2009 by daviskrex Quote Link to comment Share on other sites More sharing options...
bubu Posted June 28, 2009 Report Share Posted June 28, 2009 Nevajag lietot while ciklu. Tīrākā matemātika - jālieto aritmētiskā progresijas formula. $beigu_laiks = $sākuma_laiks + $skaits * $palielināmā_vērtība. Tātad $skaits = ($beigu_laiks - $sākuma_laiks) / $palielināmā_vērtība. Dots ir sākuma_laiks = $timelast. Cik vajag būt beigu_laiks = $time, palielināmā_vērtība - $inteval. Tātad noapaļojot uz augšu: $i = (int)ceil(($time - $timelast) / $inteval). Tev pie tam ir kļūda - while ciklā += vietā esi ierakstījis tikai + zīmi. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 28, 2009 Report Share Posted June 28, 2009 Tava $timelast vērtība nemainās - jābūt šādi: $timelast += $interval; Un šādi, manuprāt, būtu labāk: $i = floor(($time-$timelast)/$interval); Quote Link to comment Share on other sites More sharing options...
daviskrex Posted June 28, 2009 Author Report Share Posted June 28, 2009 Ļoti, ļoti liels paldies! Viss aizgāja! :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.