#8 ビンゴカード
難易度
paizaランクB相当
3 × 3のビンゴのカードのビンゴが何ラインビンゴしているかを確認するプログラムをあなたは作成していますが思ったような結果になりません。修正して正しい回答を作成してください。
条件
b_1
b_2
b_3
・1 行目 〜 3 行目に b_1, b_2, b_3 がそれぞれ "#" もしくは "." 3 文字の文字列で与えられます。
・この時 "#" はビンゴカードの穴を示し、"." はまだ開いていないマスを表します。
<?php
$bingo = array();
for ($i = 0; $i < 3; $i++) {
$bingo[] = str_split(readline());
}
$bingo_line = 0;
// 横ビンゴ
$bingo_line += ($bingo[0][0] == $bingo[0][1] && $bingo[0][1] == $bingo[0][2]) ? 1 : 0;
$bingo_line += ($bingo[1][0] == $bingo[1][1] && $bingo[1][1] == $bingo[1][2]) ? 1 : 0;
$bingo_line += ($bingo[2][0] == $bingo[2][1] && $bingo[2][1] == $bingo[2][2]) ? 1 : 0;
// 縦ビンゴ
$bingo_line += ($bingo[0][0] == $bingo[1][0] && $bingo[1][0] == $bingo[2][0]) ? 1 : 0;
$bingo_line += ($bingo[0][1] == $bingo[1][1] && $bingo[1][1] == $bingo[2][1]) ? 1 : 0;
$bingo_line += ($bingo[0][2] == $bingo[1][2] && $bingo[1][2] == $bingo[2][2]) ? 1 : 0;
// 斜めビンゴ
$bingo_line += ($bingo[0][0] == $bingo[1][1] && $bingo[1][1] == $bingo[2][2]) ? 1 : 0;
$bingo_line += ($bingo[0][2] == $bingo[1][1] && $bingo[1][1] == $bingo[2][0]) ? 1 : 0;
echo $bingo_line;
?>
tak4さんの書いたコード
<?php $b=bindec(exec("tr .# 01|tr -d '\n'"));foreach([7,56,448,273,73,146,292,84]as$v)$c+=!($b&$v^$v);echo$c;