Advertisement
Guest User

Untitled

a guest
Apr 29th, 2011
1,206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.12 KB | None | 0 0
  1. <?php
  2. header( 'Content-Type: text/html; charset=UTF-8' );
  3. ini_set( 'max_execution_time', 600 );
  4. ini_set( 'memory_limit', '1024M' );
  5. abstract class Kontener
  6.   {
  7.   protected $aLiczby;
  8.   public function ustawLiczby($aLiczby)
  9.     {
  10.     if (!is_array($aLiczby))
  11.       throw new Exception('Illegal argument');
  12.     if (count($aLiczby) != 6)
  13.       throw new Exception('Illegal argument');
  14.     $this->aLiczby = array();
  15.     foreach ($aLiczby as $liczba)
  16.       {
  17.       $liczba = (int)$liczba;
  18.       if ($liczba < 1 || $liczba > 49)
  19.         throw new Exception('Illegal argument');
  20.       $this->aLiczby[] = $liczba;
  21.       }
  22.     sort($this->aLiczby, SORT_NUMERIC);
  23.     }
  24.   public function generujLiczby()
  25.     {
  26.     $this->aLiczby = array();
  27.     for ($i = 0; $i < 6; ++$i)
  28.       {
  29.       $this->aLiczby[] = mt_rand(1, 49);
  30.       }
  31.     sort($this->aLiczby, SORT_NUMERIC);
  32.     }
  33.   }
  34. class Kupon extends Kontener
  35.   {
  36.   public function jestLiczba($iLiczba)
  37.     {
  38.     return in_array($iLiczba, $this->aLiczby);
  39.     }
  40.   }
  41. class WynikiLosowania extends Kontener
  42.   {
  43.   public function iloscTrafien(Kupon $kupon)
  44.     {
  45.     $iLicznik = 0;
  46.     foreach ($this->aLiczby as $iLiczba)
  47.       {
  48.       if ($kupon->jestLiczba($iLiczba))
  49.         ++$iLicznik;
  50.       }
  51.     return $iLicznik;
  52.     }
  53.   }
  54.  
  55. class Trafienia
  56.   {
  57.   private $aTrafienia;
  58.   public function __construct()
  59.     {
  60.     for ($i = 0; $i < 7; ++$i)
  61.       $this->aTrafienia[$i] = 0;
  62.     }
  63.   public function dodajTrafienie($iIloscLiczb)
  64.     {
  65.     if (isset($this->aTrafienia[$iIloscLiczb]))
  66.       ++$this->aTrafienia[$iIloscLiczb];
  67.     }
  68.   public function iloscTrafien($iIloscLiczb)
  69.     {
  70.     if (isset($this->aTrafienia[$iIloscLiczb]))
  71.       return $this->aTrafienia[$iIloscLiczb];
  72.     return null;
  73.     }
  74.   }
  75.  
  76. if( isset( $_GET['ilosc'] ) )
  77. {
  78.         $wygrane = explode( " ", $_GET['wygrane'] );
  79.         $losowanie = new WynikiLosowania();
  80.     $losowanie->ustawLiczby($wygrane);
  81.     $wyniki = new Trafienia();
  82.  
  83.  
  84.         for( $i = 0; $i < $_GET['ilosc']; $i++ )
  85.         {
  86.         $zaklad = new Kupon();
  87.         $zaklad->generujLiczby();
  88.                 $iTrafionych = $losowanie->iloscTrafien($zaklad);
  89.         $wyniki->dodajTrafienie($iTrafionych);
  90.         }
  91.         printf( "Zwycięskie liczby to: %s<br><br>Wygenerowano zakładów: %d<br><br>", implode(' ', $wygrane), $_GET['ilosc'] );
  92.     for ($i = 3; $i < 7; ++$i)
  93.     {
  94.         echo 'Ilość trafien '.$i.': ';
  95.         echo $wyniki->iloscTrafien($i) . '<br><br>';
  96.     }
  97. }
  98. else
  99. {
  100. ?>
  101. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  102. <html>
  103. <head>
  104.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  105.         <title>Losowanie lotto – generowanie zakładów</title>
  106. </head>
  107. <body>
  108. <h1>Generowanie zakładów</h1>
  109. <fieldset>
  110.         <form method="GET" action="">
  111.                 <label>Ilość zakładów prostych:</label> <input type="text" name="ilosc"><br>
  112.                 <label>Wygrane liczby:</label> <input type="text" name="wygrane"><br>
  113.                 <input type="submit" value="Generuj"><br>
  114.         </form>
  115. </fieldset>
  116. </body>
  117. </html>
  118. <?php
  119. }
  120. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement