ハンゲビンゴ解析

#!C:/Perl/bin/perl

for($i = 0; $i < 2**25; $i++){
	@field = ();
	$num = $i:
	for($j = 24; $j >= 0; $j--){
		if($num >= 2 ** $j){
			$field[$j] = 1;
			$num -= 2 ** $j;
		}
		else{
			$field[$j] = 0;
		}
	}
}

sub check_bingo{
	my @field = @_;
	my ($i, $j, $flag);
	my $bingo = 0;
	
	# 縦をチェック
	for($i = 0; $i < 5; $i++){
		$flag = 1;
		for($j = 0; $j < 5; $j++){
			if($field[$i*5+$j] == 0){ $flag = 0; }
		}
		if($flag == 1){ $bingo++; }
	}

	# 横をチェック
	for($i = 0; $i < 5; $i++){
		$flag = 1;
		for($j = 0; $j < 5; $j++){
			if($field[$j*5+$i] == 0){ $flag = 0; }
		}
		if($flag == 1){ $bingo++; }
	}
	
	# 斜めをチェック
	for($i = 0; $i < 5; $i++){
		$flag = 1;
		if($field[$i*5+$i] == 0){ $flag = 0; }
	}
	if($flag == 1){ $bingo++; }
	for($i = 0; $i < 5; $i++){
		$flag = 1;
		if($field[5*(4-$i)+$i] == 0){ $flag = 0; }
	}
	if($flag == 1){ $bingo++; }
	
	return $bingo;
}