私は自分が作った簡単な戦争カードゲームプログラムのレビューを探している初心者プログラマです。各プレイヤーはデッキを手に入れ、あなたは一度に1枚のカードを引いて2を比較する。デッキがなくなり、最も多くのポイントを獲得した人が勝つまでそれをやります。何かアドバイスは大歓迎です!これを見ていただきありがとうございます。deゲームのしくみについての要約を追加してください。Begin()にはかなりまともな説明が含まれています。これはただ不思議に役立ちました。投稿ありがとうございます。言及していますが、これは間違いなくあなたのものです。私はあなたのシャッフルを少し分解してそれがなぜ欠陥があるのか​​をあなたに示すと思いました。Bostockマイクもこのリソースを作成しました:シャッフルしますか?このページに移動して変更するあなたが実装したものである「ナイーブスワップ(私はランダム)」の選択。シャッフルがかなり偏っていることがわかります。それでも十分でない場合は、誤って追加のバイアスを追加したことになります。アルゴリズムをJSに変換して実行しました。右下にその非常に濃い紫色の四角が見えますか。それは最後の要素に対して非常に負のバイアスを示しています。その理由を見てみましょう。}}ランダムのドキュメント。maxValue以上の32ビット符号付き整数。戻り値の範囲にはminValueは含まれますが、maxValueは含まれません。0から50までの乱数のみを生成しているということです。ループの最後の繰り返しで交換されるだけなので、最後のアイテムを元の場所に配置することはできません。それはシャッフルにとってはとても悪いことです。Crabb源うわー、このWebページは大幅に改善されました。前回行ったことがあるのは、マッチスティックを並べ替えることで並べ替えがどのように機能するかをのみ示したことです。情報をありがとう私はこれを調べます。リソースをありがとう。源まず私があなたがクラスと関数の名前に入れた考えを賞賛すると言わせてください。Create.TheirDecks()は一種の流暢な感じがします。「あなたのコードは文章のように読むべきだ」と私はよくアドバイスしますが、すでにそれを心に留めているようです。これは(まだ)完全な答えではありませんが、これはDeckクラスに関する私のメモです。designers.私はそれがたくさんのメモであることを知っています、しかし私はこれが初心者のためのかなり良いコードであることを強調したいです!もう少し時間が来たら、もう少しメモを付けてもう一度チェックインします。他に誰も言及していないようなものを追加しましょう。定数または読み取り専用でない限り、パブリックフィールドを使用しないでください。代わりにパブリックプロパティを使用してください。クラスを考えてみましょうが、あなたは他のクラスに罪があります。}}私は見たいと思うでしょう:明示的なアクセス修飾子フィールドではなく読み取り専用のプロパティプロパティ名はPascalCasedにしてください。プロパティになります。Name;}あなたはマジックナンバーやデッキサイズに基づいてそれらを移入する必要はありません。SetName()が好きではありません。これは単体テストを問題にします。ユーザー名をコンストラクターに渡します。Yatesを使います。割り当ててから追加します。大域変数を参照するのではなく、公開無効Shuffle()にデッキを渡してください。serve?これは、より少ないコードで実行できます。