Perl

2進数を利用して、年齢当てをするスクリプト

  • ある居酒屋の年齢当て 
    • http://nlp.kimura-s.otaru-uc.ac.jp/InformationProcessing/HowOldAreYou.cgi
      	#!/usr/bin/perl
      	use CGI;
      	my $charset="utf-8";
      	my $title="小樽商科大学";
      	my $myself = './HowOldAreYou.cgi';#<------------------修正
      	my $q = new CGI;
      	print $q->header(-charset=>$charset);
      	print $q->start_html(-title=>$title, -encoding=>$charset);
      	
      	#print $q->h1('あなたのイメージした数字を当てます。');
      	print $q->h2('ある居酒屋で・・・');
      	print $q->h3("<a href=\"$myself\">最初から始める。</a><br>");
      	
      	#入力単語
      	#質問数
      	$Bit = "";
      	for($i=1;$i<=6;$i++){
      	        $Qnum = "Q" . $i;
      	        if($q->param($Qnum)){
      	                $value = $q->param($Qnum);
      	                print "Q$i $value<br>\n";
      	                $Bit .= $value;
      	                $Hidden .=  qq|<input type="hidden" name="Q$i" value="$value">\n|;
      	        }
      	        else{
      	                $num = $i;
      	                last;
      	        }
      	}
      	#
      	if($q->param("Q6")){
      	        $Bit =~ s/ある/1/g;
      	        $Bit =~ s/ない/0/g;
      	        $Bit = reverse $Bit;
      	        my $dec = oct "0b" . $Bit;
      	        print "<br>あなたのイメージした数字は<font color=red>" .  $dec, "</font>です。<br>"; # 1000
      	
      	
      	}
      	else{
      	        #数字
      	        $Qnum = "Q" . $num;
      	        print $q->start_form(-method => 'POST', -action => $myself);
      	        print $Hidden;
      	        print qq|イメージした数字はありますか?<br>\n|;
      	        print qq|<img src="page$num.png"><br>\n|;
      	        print qq|<input type="radio" name="$Qnum" value="ある">ある|;
      	        print qq|<input type="radio" name="$Qnum" value="ない">ない<br>|;
      	        print qq|<input type="submit" value="送信">|;
      	        #print qq|<input type="reset" value="リセット">|;
      	        print $q->end_form();
      	}
      	print $q->end_html();