私はWindowsフォームC#バーチャルトランプカードゲームに取り組んでいます.10人のプレイヤーが参加しています。各ラウンドの後、最初に行動する人は、ディーラーが回転するにつれて回転する(ほとんどのトランプゲームのように、最初に行動するプレーヤーは、処理した人の左にある)。トランプカードゲームの注文リストを変更する
プレイヤーはいつでも出席できますので、リストを使用して現在のアクティブプレイヤー(各プレイヤーのチェックボックスで管理)を保存するという計画でした。
このリストを使用して、どのプレイヤーが移動を必要とし、どの順番で行うかを決定したいと考えています。
私は、どのプレーヤーがディーラーであるかを別々の変数として把握していますが、正しく並べ替える方法や、現在ディーラーである人に基づいてリストの内容を正しく並べ替える方法がわかりません。
ゲームシナリオの例を以下に示します。ラウンド1プレーヤー1においてアクティブプレーヤー{1,2,3,5,8,9,10}
の
一覧ディーラーになり、従って再生の順序は2> 3> 5であろう>達成するために上の任意のアドバイス> 10> 1.
しかし何のプレイヤーがゲームを終了しないと仮定すると、ラウンド3のための順序は次のようになり5> 8> 9> 10> 1> 2> 3
8> 9これは非常に高く評価されます。
最初の考えでは、各ラウンドの終わりにリストを並べ替えることができましたが、これが正しいルートかどうかはわかりません。
これは、おかげで素晴らしいです。私はどのようにプレーヤーを追加することに対処するだろう。 プレーヤーは、ディーラーの左側から順に動作します。 たとえば、ラウンド1のプレーヤーが{1,2,3,5,8,9,10}の場合、ディーラーは1になるので、最初に行動するのは2、次に3,5,8,9 、10。 新しいプレーヤーが7位から始まる場合は、リストに追加する必要があります(これはListName.Addで行うことができますが、リストの末尾に追加します)。 5と7の間に彼を追加する必要があります。したがって、ラウンド2の新しい順序は{3,5,7,8,9,10,1}である必要があります。 – AntonZ
@AntonZ「新しい選手が7位でスタートし、5位と7位の間に追加する必要がある」というなら、本当に一貫していない。古いリストには7はありません。あなたはどのように新しいポジションを決めますか?前の要素に基づいて?もしそうなら、ドミトリーは彼のコメント –
モンに良い解決策を持っています、ゲームには最大10人のプレイヤーポーションがあります。プレイヤーは1から10の任意の座席位置に来ることができます。各ラウンドの順序はディーラーの周りを回転しますが、ディーラーの隣にいるプレイヤーは常に時計回りに動作します。それはポーカーの手で同じです。 新しいプレイヤーが来て座席位置7からプレイを開始した場合、座席位置6のプレイヤーの間で行動する必要があります(1と8がある場合) – AntonZ