Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[JS/HTML] Losowanie bez powtórzeń.

Ostatnio zmodyfikowano 2017-06-13 19:14
Autor Wiadomość
Capitan
Temat założony przez niniejszego użytkownika
[JS/HTML] Losowanie bez powtórzeń.
» 2017-06-13 18:30:16
Witam, chciałbym wylosować z tablicy całą zawartość bez powtórzeń po naciśnięciu w przycisk.

<!DOCTYPE html>
<html>
<body>
<style>
#gracz{
width:500px;
height:750px;
border: 1px solid #aaaaaa;
float:left;
}
#pozycja{
width:500px;
height:750px;
border: 1px solid #aaaaaa;
float:right;
}
#przycisk{
width:200px;
height:150px;
}
#wylosowany_gracz, #wylosowana_pozycja{
font-size:50px;
}
</style>
<script>
function losowanie_gracza() {
var links = new Array(
{text: 'Koorteo', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'},
{text: 'Koorteo1', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'},
{text: 'Koorteo2', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'}
);
link = links[Math.floor(Math.random() * 3)];
document.getElementById('wylosowany_gracz').innerHTML = link.text;
document.getElementById('wylosowany_gracz2').src = link.img;
}
function losowanie_pozycji() {
var links = new Array(
{text: 'TOP'},
{text: 'MID'},
{text: 'ADC'}
);
link = links[Math.floor(Math.random() * 3)];
document.getElementById('wylosowana_pozycja').innerHTML = link.text;
}
</script>


<div id = "gracz">
<center><p id="wylosowany_gracz"></p></center>
<center><img id="wylosowany_gracz2" src="abc" alt="GRACZ"></p></center>
<center><button onclick="losowanie_gracza()" id="przycisk">LOSUJ GRACZA</button></center>

</div>

<div id = "pozycja">
<center><p id="wylosowana_pozycja"></p></center>
<center><button onclick="losowanie_pozycji()" id="przycisk">LOSUJ POZYCJE</button><center>

</div>






</body>
</html>


Z lewej strony losuje nick gracz wraz z jego zdjęciem, po prawej pozycje.
Chciałbym losować bez powtórzeń. Czyli np. wylosuje Koorteo, to potem moge tylko Koorteo1 albo Koorteo2, po wylosowaniu wszystkich - zeby już nic nie losowało.

Jakiś pomysł? Ktoś mnie naprowadzi?
P-162494
killjoy
» 2017-06-13 19:14:14
Można tak:

<!DOCTYPE html>
<html>
<body>
<style>
#gracz{
width:500px;
height:750px;
border: 1px solid #aaaaaa;
float:left;
}
#pozycja{
width:500px;
height:750px;
border: 1px solid #aaaaaa;
float:right;
}
#przycisk{
width:200px;
height:150px;
}
#wylosowany_gracz, #wylosowana_pozycja{
font-size:50px;
}
</style>
<script>
function losowanie_gracza() {

if(this.links == null)
this.links = new Array(
{text: 'Koorteo', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'},
{text: 'Koorteo1', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'},
{text: 'Koorteo2', img: 'https://s-media-cache-ak0.pinimg.com/236x/56/72/34/5672344c9dbf9992bb8dea5d90dcab28.jpg'}
);

if(this.links.length <= 0)
{
document.getElementById('wylosowany_gracz').innerHTML = "No more";
document.getElementById('wylosowany_gracz2').src = 'https://zantemagictours.pl/img/x.png';

return;
}

var i = Math.floor(Math.random()*this.links.length);
link = links[ i ];
links.splice(i,1);

document.getElementById('wylosowany_gracz').innerHTML = link.text;
document.getElementById('wylosowany_gracz2').src = link.img;
}
function losowanie_pozycji() {
var links = new Array(
{text: 'TOP'},
{text: 'MID'},
{text: 'ADC'}
);
link = links[Math.floor(Math.random() * 3)];
document.getElementById('wylosowana_pozycja').innerHTML = link.text;
}
</script>


<div id = "gracz">
<center><p id="wylosowany_gracz"></p></center>
<center><img id="wylosowany_gracz2" src="abc" alt="GRACZ"></p></center>
<center><button onclick="losowanie_gracza()" id="przycisk">LOSUJ GRACZA</button></center>

</div>

<div id = "pozycja">
<center><p id="wylosowana_pozycja"></p></center>
<center><button onclick="losowanie_pozycji()" id="przycisk">LOSUJ POZYCJE</button><center>

</div>






</body>
</html>

Działanie
P-162495
« 1 »
  Strona 1 z 1