Função rand() no PHP: Gerando Números Aleatórios e Jogos
Você já viu aqueles captchas malucos na internet? Ou sistemas que geram códigos de confirmação (tokens) por SMS? E aquelas senhas temporárias automáticas?
Gerar valores aleatórios é uma habilidade fundamental no mundo da programação. E para a nossa alegria, o lindo e maravilhoso PHP já possui uma função nativa que faz tudo isso por nós de maneira muito simples e automática: a função rand().
1. O Básico: A Função rand() e getrandmax()
Para testar o poder dessa função, abra o seu ambiente PHP e simplesmente digite:
<?php
echo rand();
?>
Agora, fique atualizando a página. Várias e várias vezes. Você vai notar que a cada refresh, um número inteiro diferente aparece na sua tela.
Mas até onde esse número pode ir? Por padrão, se você não disser nada, a função rand() vai gerar um número que vai de 0 até o valor máximo suportado pelo sistema, que pode ser descoberto usando a função getrandmax(). Em muitos sistemas Windows, por exemplo, esse limite é 2147483647!
2. Definindo os seus próprios Intervalos (Min e Max)
A função rand() é extremamente versátil. Na maioria das vezes, não queremos um número gigantesco de bilhões, queremos um número dentro de uma regra específica. Para isso, basta passar dois parâmetros: valor mínimo e valor máximo.
- 🪙 Cara ou Coroa (Par ou Ímpar):
rand(0, 1)vai retornar estritamente ou 0, ou 1. - 🎲 Lançamento de um Dado comum:
rand(1, 6)vai retornar 1, 2, 3, 4, 5 ou 6. - 💯 Sorteio de 1 a 100:
rand(1, 100).
3. E se eu quiser números quebrados (Decimais)?
A função rand() retorna sempre números inteiros. Mas e se você estiver programando a inteligência artificial de um jogo e precisar de um número flutuante (decimal) entre 0.0 e 1.0?
A lógica é usar a matemática a seu favor! Basta pedir um número aleatório inteiro maior e dividi-lo:
<?php
// Gera um número entre 0 e 10 (ex: 7) e divide por 10. Resultado = 0.7
$decimal = rand(0, 10) / 10;
// Quer duas casas decimais? (Ex: 0.45)
$decimal_preciso = rand(0, 100) / 100;
?>
🛡️ Dica Pro: rand() vs random_int()
A função rand() é excelente para jogos, sorteios simples e brincadeiras. Porém, se você estiver gerando senhas reais, tokens financeiros ou criptografia, utilize a função random_int(min, max). Ela é criptograficamente segura e impede que hackers prevejam qual será o próximo número gerado!
4. Exercício Prático: O Jogo da Adivinhação
Agora que você já domina a geração de dados, que tal criar o seu primeiro jogo em PHP?
Crie um script web simples. O PHP vai gerar um número secreto entre 1 e 10 usando a função rand(1, 10), e você terá um formulário onde o usuário tentará adivinhar que número foi esse.
- Se o usuário acertar: Mostre uma mensagem de vitória (ex: "Você acertou! O número era X!").
- Se o usuário errar: Mostre uma mensagem de derrota (ex: "Você errou! O número sorteado foi Y!").
Consegue fazer sozinho? Tente primeiro!
→ Clique aqui para ver o Gabarito e como fazer esse jogo passo a passo
Para aprofundar seus estudos técnicos, consulte o manual oficial em: php.net/manual/pt_BR/function.rand.php
Gabarito Completo na Apostila 📚
Esse jogo e dezenas de outros projetos práticos, exercícios resolvidos e códigos fonte estão disponíveis para download imediato na nossa apostila oficial de PHP.
Baixar Apostila Completa de PHP
Nenhum comentário:
Postar um comentário