2つのサイコロの合計値が出る回数のphpプログラム

このプログラムを書こうと思ったきっかけはこちらのブログ記事。
【PHP】場合分けの数を数える - 負け犬がいろいろとかたったら


僕は今、ギークハウス高円寺に住んでいまして。この間は住人達と一緒にカタンを遊びました。遊んでいた中にid:gong023がいまして、カタンのルールである「2つのサイコロで出た合計値が出る回数」に興味が出たらしいです、そしてそれを確認するphpプログラムを書いていました。それが上で紹介したブログ記事。
それが大変面白く、普段一緒に生活している住人のプログラムコードや「その時に何を考えていたか」を知ることが出来るのはとても良いものだと感じました。そこで僕もコードを書いてみて表現してみたい欲が出てきたので勢いで書いて見ました。それがこちら。

<?php
//2つのサイコロの合計値が出る回数
$dice = range(1, 6);
$diceA = $dice;
$diceB = $dice;

$number = array();
foreach ($diceA as $aV)
{
    foreach ($diceB as $bV)
    {
        $number[] = $aV + $bV;
    }
}
$p = array_count_values($number);
echo '<pre>';
print_r($p);


表示結果

なんかCaptureボタンが映り込んでるキモい!


プログラムで気をつけたポイントとしては

  • シンプルに
  • forは使わない、foreachを使う
  • 標準の関数があるならそれを使う

ですかね。


シンプルに、解りやすく。
最近は僕の書くプログラムはforを使う機会があまりなくて、foreachばっかり使っていました。そんな時にふと思ったのですが「for文って見た目が汚い」ということに気づいてしまって、なるべく使いたくないなーという本当に個人的なアレ。速度とかはどっちがいいのか知らん。
phpは標準の配列系の関数がいっぱいあるので使おうと思いました。行数少なくて済むし。


反省点としては[ $dice = range(1, 6); ]の部分がわかりにくいなーと。ちなみにコレは1から6までの配列を入れ込んでます。
あと変数名は超適当。