Criando um gerador de números para Mega-Sena em PHP
Na hora de fazer nossos joguinhos de mega-sena sempre vem a dúvida: qual número devo jogar?
Foi pensando nisso que criei esta humilde rotina para geração de um simples conjunto de 6 números para jogar na mega-sena. O foco desta dica é ajudar os iniciantes em PHP, e lembre-se que este script não faz MILAGRE, então cuidado para não viciar.
Com este script ganhei a quadra da mega-sena, o que me rendeu R$430,00.
Uma dica pessoal: jogue sempre com o mesmo número, suas chances serão bem maiores.
<?php # Gera os 6 números
for ($i = 1; $i <= 6; $i++) { $n[] = str_pad(rand(1, 60), 2, '0', STR_PAD_LEFT); }
# Ordena os números
sort($n);
# Exibe os números
echo implode(' - ', $n);
?>
Exemplo de resultado: 01 - 28 - 36 - 40 - 45 - 57
E a explicação:
# Gera os 6 números
Aqui ele realiza um loop para 6 números, cria uma chave em uma array para cada número ( $n[] ), gera o número ( rand() ) e adiciona um "0" ao lado esquerdo do número caso ele tenha apenas um dígito, ou seja, "3" ficará "03". Frescura mesmo.
# Ordena os números
Como o próprio comentário diz, ordena em ordem crescente os números que foram gerados.
# Exibe os números
Aqui eu chamo a função implode() para separar com " - " os números, e já coloquei dentro do echo para exibí-los na tela.
O único problema que ainda estou enfrentando é criar uma rotina decente para verificar se um número foi gerado duas ou mais vezes. Pretendo usar a função array_search() para isso, mas ainda não cheguei a uma conclusão sobre como implementar ela sem "sujar" este código tão limpinho.
[4] Comentário enviado por dbahiaz em 27/09/2009 - 11:49h
Talvez não tenha feito a pergunta com claresa, vc colocou um script, e para um leigo é somente um monte de letras e tals, sei que o intuito da dica não foi para uma pessoa leiga em PHP, por isso, queria saber a rotina de execução desse script, se for algo complicado, não precisa se incomodar, quando tiver um tempinho eu vou pesquisar como rodar isso aqui e testar.
[5] Comentário enviado por joaocagnoni em 18/11/2009 - 10:08h
Bom, talvez eu tenha esquecido de explicar um pouco sobre as funções que usei, então aqui vai um breve resumo:
str_pad() - Serve para completar algo com dígitos na esquerda, direita ou ambos os lados. Neste caso serve para transformar, por exemplo, os números 2 em 02, 7 em 07, e etc.
sort() - Ordena em ordem alfabética/crescente uma array.
implode() - Imprime os valores de uma array separando-as por alguma string. Por exemplo, se tivermos uma array [2, 4, 6] e usarmos um implode('-', $array), o resultado será 2-4-6.
[6] Comentário enviado por gabrielaragao em 13/10/2014 - 11:24h
Olá, pessoal!
Sei que esse tópico é "um pouco" antigo, mas eu tenho uma dúvida.
Sou iniciante e PHP e gostaria de saber o que eu posso usar para destinguir, por opção, quantos números serão gerados.
Por exemplo: por padrão está para ser gerado 6 números. E se eu quiser que sejam 5? Eu não gostaria de ter de trocar no código, e sim ter uma opção pra isso.
[7] Comentário enviado por joaocagnoni em 13/10/2014 - 11:31h
Gabriel, fique tranquilo... Mesmo após 5 anos nunca abandonei o Viva o Linux!
Para controlar dinamicamente a quantidade de números, você pode alterar o for ($i = 1; $i <= 6; $i++) para for ($i = 1; $i <= $_GET['quantidade']; $i++), assim quando você acessar a url http://localhost/teste.php?quantidade=5, o sistema gerará 5 números. Caso você queira rodar este script via linha de comando, poderá usar for ($i = 1; $i <= $argv[1]; $i++). Exemplo: php teste.php 5
[8] Comentário enviado por gabrielaragao em 13/10/2014 - 13:35h
Obrigado pela ajuda, joaocagnoni. Isso me esclareceu bastante.
Mas no caso de haver um campo para preecher, tem como eu pegar a informação desse campo para gerar?
Se não for de mais, e no caso de eu querer gerar mais de uma linha de números?
[9] Comentário enviado por papitoerickson em 03/08/2015 - 23:02h
Boa noite pessoal, sei que o post é antigo, mas o único que achei, parecido com o meu
criei um script parecido, com todas as funções,inclusive, gerar quantidade de jogos, quantidade de números e remover números repetidos,
eu disponibilizo-o em um site para as pessoas conhecidas jogarem.
ai que pintou um problema, várias pessoas sugeriram colocar um campo, onde eles pudessem remover alguns números do sorteio, pois então tentei fazer de inúmeras vezes sem sucesso;
seria possível criar um criar um array onde os valores seriam preenchido por um campo no formulário html
por exemplo, os valores que os internautas quiserem ignorar... de 1 a 60... num jogo de 6 números...
no input html => "01,25,30,45"
consegui remover, utilizando, o array_search(), onde se localizado o valor a ser ignorado, utilizando em seguida a unset(), mas o valor onde era pra ser impresso numero ignorado fica vago vazio, ao invés de imprimir 6 números por jogo, ele imprime 5, alguma solução para esse problema?
onde esses valores poderiam ser substituídos por outros até fechar a casa da quantidade de 6 números?