ReactJS_05_losowanie_i_losowe_zdjecie.md

#05losowanieilosowezdjecie

Opis Losowanie liczb robi się przez Math.random(). Najczęściej trzeba jeszcze użyć Math.floor(), żeby dostać liczbę całkowitą.

REACTimport { useState } from "react";

function App() {
  const [liczba, setLiczba] = useState(null);

  function losuj() {
    const wynik = Math.floor(Math.random() * 100) + 1;
    setLiczba(wynik);
  }

  return (
    <div>
      <h1>Losowanie liczby</h1>

      <button onClick={losuj}>Losuj od 1 do 100</button>

      {liczba && <p>Wylosowano: {liczba}</p>}
    </div>
  );
}

export default App;

#Losowanie z zakresu od min do max

REACTimport { useState } from "react";

function App() {
  const [min, setMin] = useState(1);
  const [max, setMax] = useState(10);
  const [wynik, setWynik] = useState(null);

  function losuj() {
    const liczba = Math.floor(Math.random() * (max - min + 1)) + min;
    setWynik(liczba);
  }

  return (
    <div>
      <h1>Losowanie z zakresu</h1>

      <input
        type="number"
        value={min}
        onChange={(e) => setMin(Number(e.target.value))}
      />

      <input
        type="number"
        value={max}
        onChange={(e) => setMax(Number(e.target.value))}
      />

      <button onClick={losuj}>Losuj</button>

      <p>Wynik: {wynik}</p>
    </div>
  );
}

export default App;

#Wyświetlanie losowego zdjęcia

REACTimport { useState } from "react";

function App() {
  const zdjecia = [
    "https://picsum.photos/id/10/300/200",
    "https://picsum.photos/id/20/300/200",
    "https://picsum.photos/id/30/300/200",
    "https://picsum.photos/id/40/300/200"
  ];

  const [zdjecie, setZdjecie] = useState(zdjecia[0]);

  function losujZdjecie() {
    const index = Math.floor(Math.random() * zdjecia.length);
    setZdjecie(zdjecia[index]);
  }

  return (
    <div>
      <h1>Losowe zdjęcie</h1>

      <button onClick={losujZdjecie}>Losuj zdjęcie</button>

      <br />
      <img src={zdjecie} alt="Losowe" width="300" />
    </div>
  );
}

export default App;