Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- header( 'Content-Type: text/html; charset=UTF-8' );
- ini_set( 'max_execution_time', 600 );
- ini_set( 'memory_limit', '1024M' );
- abstract class Kontener
- {
- protected $aLiczby;
- public function ustawLiczby($aLiczby)
- {
- if (!is_array($aLiczby))
- throw new Exception('Illegal argument');
- if (count($aLiczby) != 6)
- throw new Exception('Illegal argument');
- $this->aLiczby = array();
- foreach ($aLiczby as $liczba)
- {
- $liczba = (int)$liczba;
- if ($liczba < 1 || $liczba > 49)
- throw new Exception('Illegal argument');
- $this->aLiczby[] = $liczba;
- }
- sort($this->aLiczby, SORT_NUMERIC);
- }
- public function generujLiczby()
- {
- $this->aLiczby = array();
- for ($i = 0; $i < 6; ++$i)
- {
- $this->aLiczby[] = mt_rand(1, 49);
- }
- sort($this->aLiczby, SORT_NUMERIC);
- }
- }
- class Kupon extends Kontener
- {
- public function jestLiczba($iLiczba)
- {
- return in_array($iLiczba, $this->aLiczby);
- }
- }
- class WynikiLosowania extends Kontener
- {
- public function iloscTrafien(Kupon $kupon)
- {
- $iLicznik = 0;
- foreach ($this->aLiczby as $iLiczba)
- {
- if ($kupon->jestLiczba($iLiczba))
- ++$iLicznik;
- }
- return $iLicznik;
- }
- }
- class Trafienia
- {
- private $aTrafienia;
- public function __construct()
- {
- for ($i = 0; $i < 7; ++$i)
- $this->aTrafienia[$i] = 0;
- }
- public function dodajTrafienie($iIloscLiczb)
- {
- if (isset($this->aTrafienia[$iIloscLiczb]))
- ++$this->aTrafienia[$iIloscLiczb];
- }
- public function iloscTrafien($iIloscLiczb)
- {
- if (isset($this->aTrafienia[$iIloscLiczb]))
- return $this->aTrafienia[$iIloscLiczb];
- return null;
- }
- }
- if( isset( $_GET['ilosc'] ) )
- {
- $wygrane = explode( " ", $_GET['wygrane'] );
- $losowanie = new WynikiLosowania();
- $losowanie->ustawLiczby($wygrane);
- $wyniki = new Trafienia();
- for( $i = 0; $i < $_GET['ilosc']; $i++ )
- {
- $zaklad = new Kupon();
- $zaklad->generujLiczby();
- $iTrafionych = $losowanie->iloscTrafien($zaklad);
- $wyniki->dodajTrafienie($iTrafionych);
- }
- printf( "Zwycięskie liczby to: %s<br><br>Wygenerowano zakładów: %d<br><br>", implode(' ', $wygrane), $_GET['ilosc'] );
- for ($i = 3; $i < 7; ++$i)
- {
- echo 'Ilość trafien '.$i.': ';
- echo $wyniki->iloscTrafien($i) . '<br><br>';
- }
- }
- else
- {
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Losowanie lotto – generowanie zakładów</title>
- </head>
- <body>
- <h1>Generowanie zakładów</h1>
- <fieldset>
- <form method="GET" action="">
- <label>Ilość zakładów prostych:</label> <input type="text" name="ilosc"><br>
- <label>Wygrane liczby:</label> <input type="text" name="wygrane"><br>
- <input type="submit" value="Generuj"><br>
- </form>
- </fieldset>
- </body>
- </html>
- <?php
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement