Skip to content

Instantly share code, notes, and snippets.

@matheuseduardo
Created February 12, 2025 04:18
Show Gist options
  • Save matheuseduardo/392296e5839471a0eabcfe1fb3abdac7 to your computer and use it in GitHub Desktop.
Save matheuseduardo/392296e5839471a0eabcfe1fb3abdac7 to your computer and use it in GitHub Desktop.
gerador de números aleatórios para sorteios
param (
[int]$QuantidadeNumeros = 6, # Quantidade de números a serem sorteados (padrão: 6)
[int]$Minimo = 1, # Valor mínimo do número (padrão: 1)
[int]$Maximo = 60, # Valor máximo do número (padrão: 60)
[int]$TempoPorNumero = 3, # Tempo de sorteio por número em segundos (padrão: 3)
[int]$Intervalo = 100 # Intervalo entre as atualizações em milissegundos (padrão: 100)
)
function Simular-Sorteio {
param (
[int]$QuantidadeNumeros,
[int]$Minimo,
[int]$Maximo,
[int]$TempoPorNumero,
[int]$Intervalo
)
$numerosSorteados = @() # Armazena os números já sorteados
for ($i = 0; $i -lt $QuantidadeNumeros; $i++) {
$inicio = Get-Date
while ((Get-Date) -lt $inicio.AddSeconds($TempoPorNumero)) {
# Gera um número aleatório único
$numero = Get-Random -Minimum $Minimo -Maximum ($Maximo + 1)
$numeroFormatado = "{0:D2}" -f $numero # Formata com 2 dígitos
# Verifica se o número já foi sorteado
if ($numerosSorteados -notcontains $numeroFormatado) {
# Limpa a linha atual e exibe os números já sorteados + o novo número
Write-Host -NoNewline "`rNúmeros sorteados: $($numerosSorteados -join ' | ') | $numeroFormatado"
}
# Aguarda o intervalo especificado
Start-Sleep -Milliseconds $Intervalo
}
# Adiciona o número sorteado à lista
$numerosSorteados += $numeroFormatado
}
# Exibe os números finais
Write-Host "`rNúmeros sorteados: $($numerosSorteados -join ' | ')`n"
}
# Executa a simulação de sorteio
Simular-Sorteio -QuantidadeNumeros $QuantidadeNumeros -Minimo $Minimo -Maximo $Maximo -TempoPorNumero $TempoPorNumero -Intervalo $Intervalo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment