Jump to content
Sign in to follow this  
fnds

[PHP] Gerador de chaves do Euromilhões

Recommended Posts

fnds

Estive a ver o meu arquivo de código (aka código velho, muito velho :() e encontrei lá este script web based, não é nada de especial.

$numero_de_chaves = isset($_GET['c']) ? $_GET['c']+0 : 1;
$numero_de_numeros = isset($_GET['n']) ? $_GET['n']+0 : 5;
$numero_de_estrelas = isset($_GET['e']) ? $_GET['e']+0 : 2;
$combinacoes=array(
2=>array(
	5=>array(1, 2),
	6=>array(6, 12),
	7=>array(21, 42),
	8=>array(56, 112),
	9=>array(126, 252),
	10=>array(252, 504),
	11=>array(462, 924)
	),
3=>array(
	5=>array(3, 6),
	6=>array(18, 36),
	7=>array(63, 126),
	8=>array(168, 336),
	9=>array(378, 756),
	10=>array(756, 1512)
	),
4=>array(
	5=>array(6, 12),
	6=>array(36, 72),
	7=>array(126, 252),
	8=>array(336, 672),
	9=>array(756, 1512)
	),
5=>array(
	5=>array(10, 20),
	6=>array(60, 120),
	7=>array(210, 420),
	8=>array(560, 1120),
	),
6=>array(
	5=>array(15, 30),
	6=>array(90, 180),
	7=>array(315, 630),
	),
7=>array(
	5=>array(21, 42),
	6=>array(126, 252),
	7=>array(441, 882),
	),
8=>array(
	5=>array(28, 56),
	6=>array(168, 336),
	7=>array(588, 1176),
	),
9=>array(
	5=>array(36, 72),
	6=>array(216, 432),
	7=>array(756, 1512),
	)
);
if ($numero_de_chaves){
if (isset($combinacoes[$numero_de_estrelas]) && isset($combinacoes[$numero_de_estrelas][$numero_de_numeros])){
	echo "<b>Número de chaves:</b> $numero_de_chaves<br />\n<b>Aposta Múltipla:</b> $numero_de_numeros números e $numero_de_estrelas estrelas faz ".$combinacoes[$numero_de_estrelas][$numero_de_numeros][0]." apostas com um preço de ".$combinacoes[$numero_de_estrelas][$numero_de_numeros][1]."€<br />\n<br />\n<br />\n<b>Chaves:</b>\n";
	for ($c=1; $c<=$numero_de_chaves; $c++){
		$numeros = array();
		$estrelas = array();
		for ($n=1; $n<=$numero_de_numeros; $n++){
			do{
				$numero = rand(1, 50);
			}while (in_array($numero, $numeros));
			$numeros[$n] = $numero;
		}
		for ($e=1; $e<=$numero_de_estrelas; $e++){
			do{
				$estrela = rand(1, 9);
			}while (in_array($estrela, $estrelas));
			$estrelas[$e] = $estrela;
		}
		sort($numeros);
		sort($estrelas);
		$numeros = implode(', ', $numeros);
		$estrelas = implode(', ', $estrelas);
		echo "<br />\n<br />\n<b>Números:</b> $numeros<br />\n<b>Estrelas:</b> $estrelas";
	}
}else{
	echo "<b>A aposta multipla que escolheu está incorrecta:</b> $numero_de_numeros números e $numero_de_estrelas estrelas.";
}
}else{
echo "<b>Número de chaves:</b> 0";
}

Input:

nome_do_ficheiro.php

Output:

Número de chaves: 1

Aposta Múltipla: 5 números e 2 estrelas faz 1 apostas com um preço de 2€

Chaves:

Numeros: 33, 43, 46, 48, 49

Estrelas: 3, 9

Input:

nome_do_ficheiro.php?c=3&n=9&e=4

Output:

Número de chaves: 3

Aposta Múltipla: 9 números e 4 estrelas faz 756 apostas com um preço de 1512€

Chaves:

Numeros: 1, 12, 16, 21, 25, 40, 43, 46, 48

Estrelas: 3, 5, 8, 9

Numeros: 9, 13, 16, 18, 23, 25, 37, 48, 50

Estrelas: 2, 4, 6, 9

Numeros: 5, 8, 9, 11, 12, 13, 17, 25, 39

Estrelas: 5, 6, 7, 9

Input:

nome_do_ficheiro.php?c=3&n=10&e=6

Output:

A aposta multipla que escolheu está incorrecta: 10 números e 6 estrelas.

Share this post


Link to post
Share on other sites
djthyrax

Epá, e indentar o código não?


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
fnds

Epá, e indentar o código não?

A mim parece-me indentado :/

Aquele array é que ficou um bocado esquisito.

Share this post


Link to post
Share on other sites
djthyrax

if(isset($combinacoes[$numero_de_estrelas])&&isset($combinacoes[$numero_de_estrelas][$numero_de_numeros])){

Isto é indentado? :(


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
djthyrax

Não era indentação que eu queria dizer...

if(isset($combinacoes[$numero_de_estrelas]) && isset($combinacoes[$numero_de_estrelas][$numero_de_numeros])){

Aqueles espaços à volta dos &&. Eu chamo-lhes indentação too, mas não é o nome correcto.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
fnds

Ah, isso já é outra coisa. :(

Como disse lá em cima este código já é muito velho, ele está como na altura eu o fazia.

Mas já que fazes questão eu edito...

Share this post


Link to post
Share on other sites
QuickFire

Podia ser bastante optimizado no número de linhas, mas funciona e para o uso que vai ter, é o que se quer :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.