テストを書かねばなりません
わかってたことだが役判定は結構なパターンがあるので
チェックが必要かしら。Test::Moreなどを調べ中。
Test::More 真偽値、数値や文字列の比較を行う関数 - Perl入門〜サンプルコードによるPerl入門〜
http://d.hatena.ne.jp/perlcodesample/20090221/1234103071
Perl のテストについて - tsucchiの日記
http://d.hatena.ne.jp/tsucchi1022/20081002/1222952385
Test::More で no_plan が良くない訳 - tsucchiの日記
http://d.hatena.ne.jp/tsucchi1022/20090812/1250090372
パッケージとモジュール [Perl講座 -Smart]
http://www.rfs.jp/sb/perl/04/01.html
[perl] 一次元配列同士の比較のいろいろなやり方 - harupiyoの日記
http://d.hatena.ne.jp/harupiyo/20090201
Test::More - テストを書くためのもう一つのフレームワーク
http://perldoc.jp/docs/modules/Test-Simple-0.47/More.pod
テストを書いてみた
hantei.t - majan-perl - Project Hosting on Google Code
http://code.google.com/p/majan-perl/source/browse/trunk/t/hantei.t
コミケ一日目が終わったらしい。
勇者の方々乙であります。
今日は一日麻雀したり、麻雀したり、書いたり、ハルヒ見たり、
偽物語読み始めたりとひきこもっておりました。
# 平和 # # m2m3m4m2m3m4m2m3m4p2p3p4m5m5 m2 # @$mentsu = # m5,m5 # m2,m3,m4 # m2,m3,m4 # m2,m3,m4 # p2,p3,p4 sub is_pinhu { my ($mentsu, $agari_hai) = @_; my $rc = 1; foreach my $line ( @$mentsu ) { my ($first, $second, $third) = split /\,/, $line; unless (defined $third) { # 頭が上がり牌は成立しない if ($agari_hai eq $first) { $rc = 0; last; } next; } # 刻子は成立しない if ($first eq $second) { $rc = 0; last; } # 字牌は成立しない if ($line =~ /z/) { $rc = 0; last; } # 両面待ちしかダメ if ($second eq $agari_hai) { $rc = 0; last; } } return $rc; } # タンヤオ sub is_tanyao { my ($mentsu) = @_; my $rc=1; foreach my $line ( @$mentsu ) { $rc = 0 if ($line =~ /1|9|z/); } return $rc; }
タンヤオ簡単でよかった。