Symulator Lotto (6 z 49)

Javascript
Priorytet: Normalny Szkic

Zadanie 51: Symulator Lotto (6 z 49)

Wstęp

W tym zadaniu stworzysz aplikację, która symuluje losowanie lotto. Twoim zadaniem jest wygenerowanie 6 unikalnych liczb z zakresu od 1 do 49.

Kluczowym wyzwaniem jest zapewnienie, że żadna liczba się nie powtórzy. W JavaScript idealnym narzędziem do tego celu jest obiekt Set.

Czego się nauczysz:

  • Używania obiektu Set do przechowywania unikalnych wartości.
  • Pętli while do generowania liczb aż do osiągnięcia celu.
  • Zamiany obiektu Set na tablicę (Array.from lub operator spread [...]).
  • Sortowania liczb w tablicy za pomocą metody .sort().

Opis z Przykładami

1. Obiekt Set (Zbiór unikalny)

Set to kolekcja, która nie pozwala na duplikaty. Jeśli spróbujesz dodać tę samą liczbę dwa razy, zostanie ona zignorowana.

const liczby = new Set();
liczby.add(10);
liczby.add(20);
liczby.add(10); // Ta linia nic nie zmieni

console.log(liczby.size); // Wynik: 2

2. Losowanie 6 unikalnych liczb

Użyjemy pętli while, która będzie losować liczby tak długo, aż w naszym zbiorze znajdzie się ich dokładnie 6.

const wyniki = new Set();
while(wyniki.size < 6) {
    let los = Math.floor(Math.random() * 49) + 1;
    wyniki.add(los);
}

3. Sortowanie liczb

Metoda .sort() w JavaScript domyślnie sortuje wartości jako teksty (alfabetycznie). Aby posortować liczby rosnąco, musimy przekazać funkcję porównującą:

const tablica = Array.from(wyniki);
tablica.sort((a, b) => a - b); // Sortowanie rosnące

Twoje Zadanie

Struktura Projektu:

  1. index.html - Dodaj przycisk "Losuj Szczęśliwe Liczby" oraz kontener na 6 kulek z wynikami.
  2. style.css - Ostyluj wyniki tak, aby przypominały kulki lotto (okrągłe, z numerem w środku).
  3. script.js - Zaimplementuj logikę losowania unikalnych liczb i ich wyświetlania.

Wymagania:

  • Wykorzystaj Set do unikalności.
  • Wyświetl liczby w kolejności rosnącej.
  • Każde kliknięcie przycisku powinno generować nowy zestaw liczb.

Warunek Zaliczenia

Aplikacja po kliknięciu przycisku wyświetla 6 różnych liczb z zakresu 1-49, posortowanych rosnąco.