Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt losujacy
'poczatkujacy'
post 30.07.2005, 15:49:18
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 21.07.2005

Ostrzeżenie: (0%)
-----


Witam mam taki skrypt:
  1. <?php
  2.  
  3.  
  4. // tutaj toporny engine. ogolnie funkcja zwraca talbice 10 liczb posegregowanych o
  5.  najmniejszej do najwiekszej
  6. //print \"<a href=\"skrypt.php?czyn=losuj\"> losuj</a><br><br><br>\";
  7.  
  8. //$czyn = $_GET['czyn'];
  9. //if($czyn == \"losuj\"){
  10.  
  11.  
  12. srand ((float) microtime() * 10000000);
  13.  
  14.  
  15. $licz = global_losuj();
  16.  
  17. for($i = 0; $i < 10; $i++){
  18.  
  19.  
  20. print &#092;"wylosowal $licz[$i]<br>\";
  21.  
  22. }
  23.  
  24. //}
  25. // tutaj konczy sie toporny engine. mozna to wykasowac i zapodac jeno includy do t
  26. go skryptu z wywolaniem funkcji global_losuj()
  27.  
  28.  
  29. // funkcja ktora odpowiada za dobor liczb przy losowaniu
  30.  
  31. function global_losuj(){
  32.  
  33. $parzyste = rand(4,7);
  34. $nie_parzyste = 10 - $parzyste;
  35.  
  36. //to ponizej jeno dla pokazania jaki stosunek jezd liczb. normalnie wyciac i jush 
  37. ic nie bedzie sie wyswietlalo
  38. print &#092;"parzyste : nieparzyste -> $parzyste : $nie_parzyste<br><br>\";
  39.  
  40. do{
  41.  
  42. $i = 1;
  43. $ilosc_nie_parzyste = 0;
  44. $ilosc_parzyste = 0;
  45. $anty_crash = 0;
  46. $jeszczeraz = 0;
  47.  
  48. while($i != 11){
  49.  
  50.  
  51.  
  52. $uk = losuj();
  53. $powtorka = 0;
  54. // sprawdzanie czy liczba jush nie wystapila
  55. $q = 0;
  56. while ($q != $i){
  57.  
  58. if($liczby_tablica[$q] == $uk){
  59.  
  60. $powtorka = 1;
  61.  
  62. }
  63. $q++;
  64. }
  65.  
  66. // tera sprawdzanie koncowek
  67. if($powtorka == 0){
  68. $ukkk = $uk%10;
  69.  
  70. if($reszta[$ukkk] == 2){
  71.  
  72. $powtorka = 1;
  73. }
  74.  
  75. if($reszta[$ukkk] == 1){
  76.  
  77. $reszta[$ukkk]++;
  78. }
  79.  
  80. if($reszta[$ukkk] == &#092;"\"){
  81.  
  82. $reszta[$ukkk] = 1;
  83. }
  84.  
  85. }
  86.  
  87. // tera zapodanie stosunku tongue.gif
  88. if($powtorka == 0){
  89. if(($uk%2) == 0){
  90.  
  91. if($ilosc_parzyste >= $parzyste){
  92. $powtorka = 1;
  93. }
  94. if($ilosc_parzyste < $parzyste){
  95. $ilosc_parzyste++;
  96. }
  97. }
  98.  
  99. if(($uk%2) != 0){
  100.  
  101. if($ilosc_nie_parzyste >= $nie_parzyste){
  102. $powtorka = 1;
  103. }
  104. if($ilosc_nie_parzyste < $nie_parzyste){
  105. $ilosc_nie_parzyste++;
  106. }
  107. }
  108.  
  109. }
  110.  
  111. // sprawdzenie czy nie ma trojek mozliwych
  112. $q = 0;
  113. while ($q != $i){
  114.  
  115. if(($liczby_tablica[$q]+== $uk)&&($liczby_tablica[$q+1]-== $uk)){
  116.  
  117. $powtorka = 1;
  118.  
  119. }
  120.  
  121. if(($liczby_tablica[$q-1]+== $uk)&&($liczby_tablica[$q]+== $uk)){
  122.  
  123. $powtorka = 1;
  124.  
  125. }
  126.  
  127. if(($liczby_tablica[$q+1]-== $uk)&&($liczby_tablica[$q]-== $uk)){
  128.  
  129. $powtorka = 1;
  130.  
  131. }
  132.  
  133. $q++;
  134. }
  135.  
  136.  
  137.  
  138.  
  139. // tera sprawdzanie dziesiatek
  140.  
  141. if ($powtorka == 0){
  142. if($uk > 10){
  143. $temp = $uk/10;
  144.  
  145. preg_match(&#092;"/(d+)(.?d?)/\",$temp, $wynik);
  146.  
  147. $temp2 = $wynik[1];
  148. if($dziesiatki[$temp2] < 3){
  149. $dziesiatki[$temp2]++;
  150. }
  151. else{
  152. $powtorka = 1;
  153. }
  154. }
  155. else{
  156. if($dziesiatki[0] < 3){
  157. $dziesiatki[0]++;
  158. }
  159. else{
  160. $powtorka = 1;
  161. }
  162. }
  163.  
  164.  
  165. }
  166.  
  167. //tera progres albo i nie do nastepnej liczby tongue.gif
  168.  
  169. $anty_crash++;
  170. if ($powtorka == 0){
  171. $liczby_tablica[$i] = $uk;
  172.  
  173. $i++;
  174. sort($liczby_tablica);
  175.  
  176. }
  177.  
  178. // jak za dlugo generuje to trza wystartowac od poczatku bo inaczej do konca swiat
  179.  sie nie wyrobi :P
  180. if($anty_crash > 100){
  181.  
  182. $i = 11;
  183. $jeszczeraz = 1;
  184.  
  185. unset($liczby_tablica);
  186. unset($dziesiatki);
  187. unset($reszta);
  188.  
  189.  
  190. }
  191. }
  192.  
  193.  
  194. }while($jeszczeraz != 0);
  195.  
  196.  
  197.  
  198. return $liczby_tablica;
  199. }
  200.  
  201. //funkcja ktora strice losuje. jak trza zmienic przedzialy albo cos to tu grzebac
  202.  
  203. function losuj(){
  204.  
  205. $koniec_losowania = 0;
  206.  
  207. do{
  208. $liczba = rand(20,69);
  209. if((($liczba <= 39)&&($liczba >= 20))||(($liczba <= 69)&&($liczba >= 50))){
  210.  
  211. $koniec_losowania = 1;
  212.  
  213. }
  214. }while($koniec_losowania != 1);
  215. return $liczba;
  216.  
  217. }
  218.  
  219. ?>


I mam problem a raczej pytanie, co mam dopisac zeby mozna bylo wprowadzac liczby oddzielone przecinkiem ktore ma pominac w trakcie losowania. Chodzi o to zeby mu wprowadzac liczby np: 23, 25, 26 ktore nie maja byc losowane. A i czy jest mozliwe zeby wypisal wszystkie mozliwe kombinacje smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.06.2024 - 15:40