jeg er i gang med at prøve at lave et poker spil med javascript
jeg er kun lige startet men jeg har allerede et problem
jeg har 52 forskellige kort, så jeg har lavet en array med 52 indexer (0-51) som er skrevet sådan her:
Kode: Vælg alt
var deck = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52];
her kommer mit problem:
det jeg prøver på at gøre er at køre en loop igennem arrayet der tager hver index en efter en...så lad os nu sige at vi startede med index 0 som har en værdi af 1.... hvad loopen så skal gøre er at, først vælge et random index fra arrayen, måden jeg har gjort det på er:
Kode: Vælg alt
var random = Math.floor(Math.random() * 51);
måden jeg har gjort det på er:
Kode: Vælg alt
deck[i] = deck[random];
først troede jeg at det virkede fint...men så efter at havde prøvet at gøre det et par gange, fandt jeg ud af at man kunne få 2 af de samme kort, for eksempel spar es og spar es...
så efter at havde tænkt lidt over det fandt jeg ud af hvorfor det skete,
grunden til det var at hvis nu loopen kørte igennem index 0 og som så blev lavet om til index 2...
og derefter gik den så igang med index 1..og derefter gik den igang med index 2, men det der så skete nogle gange var at
nogle gange tog den så fks. index 0 som jo var lig med index 2s værdi, altså det random index og det index den var i gang med havde den samme værdi...så på den måde fik jeg nogle gange de samme 2 kort (for eksempel spar es, og spar es) fordi index 0 og 2 var den samme værdi..
så jeg prøvede at skrive:
Kode: Vælg alt
var random = Math.floor(Math.random() * 51)+i;
altså når den køre igennem index 0, kan random vælge et index mellem 0-51 (altså den har frit valg på alle indexer)
og så når index 0 var færdig og det var index 1s tur, kunne random vælge mellem 0-51 + 1 (altså 1-52)
på den her måde kunne random ikke vælge de indexer som allerede var blevet "blandet" , men problemet jeg så har nu er at nu hvor den kan vælge fra index 1-52, og jeg kun har 51 indexer, vælger den nogle gange et index jeg ikke har..... :\
hele min kode ser sådan her ud:
Kode: Vælg alt
<script type="text/javascript">
function start(){
shuffleCards-and-givePlayer();
}
function shuffleCards-and-givePlayer(){
//deck
var deck = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52];
for(i = 0;i < 52;i++){
//finds a random number between 0-51, total of 52 numbers
var random = Math.floor(Math.random() * 51);
deck[i] = deck[random];
}
//display random numbers
for(i = 0;i < deck.length;i++){
document.write(deck[i] + " - ");
}
//gives player 2 cards
var firstCard = deck[51];
var secondCard = deck[50];
document.write('<img src="cards/'+firstCard+'.png"/>');
document.write('<img src="cards/'+secondCard+'.png"/>');
}
</script>