Mobile App Development · Dart/Flutter
Simule um sorteio de 6 números únicos da Mega Sena (1 a 60) usando Random e um Set para garantir que nenhum número se repita.
Nesta aula você vai gerar números aleatórios com a classe Random da biblioteca dart:math, entender por que uma List pode conter valores repetidos e resolver esse problema usando um Set, que só aceita valores únicos. No final, você monta uma função que sorteia 6 números distintos entre 1 e 60, ordenados em ordem crescente.
import 'dart:math'
Biblioteca padrão do Dart com utilitários matemáticos, incluindo a classe Random.
Random()
Cria um gerador de números pseudoaleatórios. Cada execução do programa tende a produzir resultados diferentes.
nextInt(60) + 1
nextInt(n) sorteia um inteiro entre 0 e n - 1. Somar 1 desloca o intervalo para 1 a 60.
Set<int>
Coleção que não permite valores duplicados — ideal para acumular números sorteados sem repetição.
while (set.length < 6)
Continua sorteando e tentando adicionar ao Set até ele acumular 6 elementos distintos.
toList()..sort()
Converte o Set em List e ordena em ordem crescente usando o operador cascade ...
join(', ')
Junta os elementos de uma lista em uma única String, separados pelo texto informado.
import 'dart:math';
void main() {
print('Bem-vindo(a) ao Simulador Mega Sena!');
final numeros = realizarSorteioMegaSena();
print('Números sorteados: ${numeros.join(', ')}');
}
List<int> realizarSorteioMegaSena() {
final random = Random();
final sorteados = <int>{};
while (sorteados.length < 6) {
sorteados.add(random.nextInt(60) + 1);
}
final resultado = sorteados.toList()..sort();
return resultado;
}
Como o programa usa Random, os números sorteados mudam a cada execução. Um exemplo de saída possível:
Bem-vindo(a) ao Simulador Mega Sena! Números sorteados: 4, 15, 22, 33, 47, 58
A saída varia a cada execução — apenas a quantidade de números (6), o intervalo (1 a 60) e a ausência de repetição são garantidos.
List por um Set em um exemplo com repetição e compare o resultado.