2017-04-07 5 views
1

私はベーシック/シンプルウォーカードゲームを作ろうとしています。私はJavascriptの部分に取り組んでいます。私はランダムにカードの値の半分を取る方法につきまして、別の配列にそれらを移動させてランダ​​ムにピッキングし、それらを2番目の配列に移動させるために、同じものを何度も何度もピックしません。多かれ少なかれ)。1つのアレイからデータを取り込むには、同じカードを2回取り出さずにランダムに選択し、別のアレイに移動します。

var DeckofCards = new Array('2D', '2H', '2S', '2C', '3D', '3H', '3S', '3C', '4D', '4H', '4S', '4C', 
        '5D', '5H', '5S', '5C', '6D', '6H', '6S', '6C', '7D', '7H', '7S', '7C', 
        '8D', '8H', '8S', '8C', '9D', '9H', '9S', '9C', '10D', '10H', '10S', '10C', 
        '11D', '11H', '11S', '11C', '12D', '12H', '12S', '12C', 
        '13D', '13H', '13S', '13C', '14D', '14H', '14S', '14C') 

私は今すぐすべてのことをするためのコードを書くにはどうすればよいですか? また、私はもっと簡単に理解できるように、回答コードをできるだけシンプルに保ってください。 here与えられたシャッフリング法を使用して

+0

を試してみてください、あなたがこれまで試みられてきたものを共有してください。 –

答えて

1

、この

var DeckofCards = new Array('2D', '2H', '2S', '2C', '3D', '3H', '3S', '3C', '4D', '4H', '4S', '4C', '5D', '5H', '5S', '5C', '6D', '6H', '6S', '6C', '7D', '7H', '7S', '7C', '8D', '8H', '8S', '8C', '9D', '9H', '9S', '9C', '10D', '10H', '10S', '10C', '11D', '11H', '11S', '11C', '12D', '12H', '12S', '12C', '13D', '13H', '13S', '13C', '14D', '14H', '14S', '14C'); 
 

 
function shuffle(array) 
 
{ 
 
    var currentIndex = array.length, temporaryValue, randomIndex; 
 

 
    // While there remain elements to shuffle... 
 
    while (0 !== currentIndex) 
 
    { 
 
    // Pick a remaining element... 
 
    randomIndex = Math.floor(Math.random() * currentIndex); 
 
    currentIndex -= 1; 
 
    // And swap it with the current element. 
 
    temporaryValue = array[currentIndex]; 
 
    array[currentIndex] = array[randomIndex]; 
 
    array[randomIndex] = temporaryValue; 
 
    } 
 

 
    return array; 
 
} 
 

 
var output = shuffle(DeckofCards).slice(DeckofCards.length/2); 
 
console.log(output);

関連する問題