偏読日記@はてな

本を読んだりゲームをしたり、インターネットの話をしたりします。小説も書きます。

はてな四字熟語

問題です。はてなユーザーアイコンだけでアルファベット26文字を揃えることができるでしょうか? の「漢字一文字のユーザーアイコン一覧」を見ていたら、これを使って四字熟語を作るというアイディアが閃いたので自動生成スクリプト書いてみました。


はてな四字熟語


生成結果サンプルは以下の通り。
id:june29 id:shindou id:tengsama id:Idios
このように漢字ユーザーアイコンをランダムに4つ組み合わせたものが自動で生成されます。

時折とんでもない組み合わせが出てなかなか笑えるので皆さんも是非。

一応コードを公開しますけど、きっかけとなった はてなユーザーアイコン画像だけで文章を書いてみる を書き終えた瞬間に思いついて3時間くらいで作ったので本当に酷いです。コードとHTMLが全く分離してませんし。

#!/usr/local/bin/perl

use strict;

open INPUT, "<id.txt";
my @url = <INPUT>;
my @id;
my $rnd;
my @print;
for ( my $i = 0 ; $i < 4 ; $i++ ) {
	$rnd = rand(@url);
	push( @print, splice( @url, $rnd, 1 ) );
}

foreach(@print){
	push (@id,$_=~ /(id:\w*_*-*)"/);
}

Output(\@print,\@id);

sub Output {
	my $print = shift;
	my $id = shift;
	print "Content-type: text/html\n\n";
	print <<"eof";
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
 <html lang="ja"><head>
 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
 <title>生成結果</title>
 <style type="text/css">
<!--
.hatena-id-image {
    border-style:none;
}
-->
</style>
 </head>
 <BODY><h1>はてな四字熟語 - 生成結果</h1>
eof

	#本文表示
	foreach (@$print) {
		$_ .= "\n";
		print;
	}
	
print '<br><br><p>生成結果のはてな記法</p><textarea cols="50" rows="6">';
foreach(@$id){
	print $_.':image ';

}
	print <<"eof";
</textarea>
<p>上ボックス内の表記をコピーして張り付ければ生成結果を自分のダイアリーに表示できます</p>
<a href="http://www5e.biglobe.ne.jp/~mybook/yozi.html">戻る</a>
</body>
</html>
eof

}