[解決済み] Javascript- Lodash シャッフル vs. Math.Random()
2022-02-14 10:09:11
質問
Javascriptで簡単なBlackJackゲームをコーディングしている最中です。 今のところ、このような配列を持っています。
var deckArray = [ "card1", "card2",...,"card52" ]
私は、"deal"関数をこのように設定しています。
var deal = function(){
var card = Math.floor(Math.random() * deckArray.length);
return deckArray.splice(card,1)[0];
};
すでにMath.randomを使ってdeckArrayからランダムに選択しているので、このようにLodashで"shuffle"関数を組み込むのは冗長でしょうか。
var shuffle = function(){
deckArray = _.shuffle(deckNames);
};
解決方法は?
そうだろうと思います。実際のカードでは、デッキをシャッフルしてから、デッキの一番上から何枚かカードを選びます。これはおそらくシャッフル機能で行うことで、実際の使い方をモデル化しているのでしょう。
と
Math.Random()
シャッフルされていないデッキからランダムにカードを選ぶことになります。ここで重要なのはランダム性です(これは
本当に
ということです。) つまり、これは実際の使い方をモデルにしているわけではありませんが、最終的な結果は同じなのです。
私が提案するのは
Math.Random()
を使用するよりも高速になるためです。
_.shuffle
の(Fisher-Yates)アルゴリズムと同じです。
関連
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptの配列をランダム化(シャッフル)する方法は?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?