0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

トランプゲームでのカード強さ判定の仕組みと連想配列の活用

Posted at

現在エンジニアになるためにプログラミングの学習をしています。

それにあたって、今回は戦争ゲームをPHPで作成してみました。
作成にあたって難しかった点について共有します。

ゲームの流れ

1.カードの生成とシャッフル: ゲームの最初にトランプカード(52枚)を生成し、シャッフルします。

2.プレイヤーへのカード配布: 生成したカードをプレイヤーに配布します。

3.ゲームの開始: プレイヤー同士でカードを比較し、数字が大きいカードを所持している人が勝者となり、相手のカードを獲得する事ができます。

4.1-3までの工程をカードが無くなるまで行い、最終的に獲得枚数が多い人が勝者になります。

作成にあたって難しかった点。

トランプの強さを比較する点です。

連想配列を用いたカードの強さ表現

トランプゲームにおいて、カードには数値と強さがあります。例えば、「A(エース)」や「K(キング)」は特定のゲームルール下では他のカードよりも強いとされることがあります。そのため、カードの強さを数値で表現する必要があります。

以下は、カードの強さを連想配列で表現する例です。

$values = ['A' => 14, 'K' => 13, 'Q' => 12, 'J' => 11, '10' => 10, '9' => 9, '8' => 8, '7' => 7, '6' => 6, '5' => 5, '4' => 4, '3' => 3, '2' => 2]; 

この連想配列では、カードの値(A, K, Q, ...)をキーとし、そのカードの強さを表す数値を対応付けています。これにより、プログラム上でカードの強さを簡単に判定することができます。

連想配列の降順ソートと最大値の取得

ゲーム中には、プレイヤーが持つカードの中で最も強いカードを特定する必要があります。その際には、連想配列を強さの降順にソートし、最大値を取得することが便利です。

arsort($values);// 連想配列を降順にソート
$maxValue = reset($values); // 最大値を取得
$keys = array_keys($values); // ソート後のキー配列を取得

このように連想配列をソートし、最大値を取得することで、プレイヤーが持つカードの中で最も強いカードを素早く特定することができます。これにより、ゲームの進行や勝敗の判定がスムーズに行えました。

以上で今回は終わります。
これからも学んだことを投稿していこうと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?