DevQuiz しりとりで使ったプログラム #gdd2010jp

まず、今回のクイズのしりとりに勝つため私が考えた作戦は、相手(コンピュータ)に、先頭に使用されているより末尾に使用されている数が多いアルファベットの単語から選ばせるようにすれば、そのうち相手が手詰まりになって勝てるだろうというものでした。

そのため、選択肢となる単語に使用されている先頭のアルファベットと末尾のアルファベットの数を調べるためのプログラムを作成し、その結果をもとに以下の優先順位で回答を選択していきました。

1.単語の末尾が先頭の方が少ないアルファベットのもの
2.単語の末尾が先頭と末尾で同じアルファベットのもの
3.単語の末尾が先頭の方が多いアルファベットのもの

例えばLv3の場合、以下のような結果になるので、提示される選択肢の中からできるだけ末尾が、b、f、g、i、k、q、s、u、v、wのものを選択していけば良いということになります。

a :  14   11  >>
b :  11   12  <<!
c :   4    4  ==
e :   4    4  ==
f :  11   12  <<!
g :  11   12  <<!
h :   4    4  ==
i :   4    5  <<!
j :  14   11  >>
k :  11   12  <<!
l :   3    3  ==
m :   4    4  ==
n :   3    3  ==
o :  14   11  >>
p :   4    4  ==
q :  11   12  <<!
r :   3    3  ==
s :  11   12  <<!
t :   4    4  ==
u :  11   12  <<!
v :  11   12  <<!
w :  11   12  <<!
y :   4    4  ==
z :   5    4  >>

--- siritori.pl

#!/usr/bin/perl
#
# GDD 2010 DevQuiz しりとり
#

use strict;
use warnings;

my %alpha_head = ();
my %alpha_tail = ();

open my $infh, '<', "siritori.txt";
while (my $word = <$infh>) {
    chomp $word;
    my $head = substr($word, 0, 1);
    my $tail = substr($word, length($word) - 1, 1);
    $alpha_head{$head}++;
    $alpha_tail{$tail}++;
}
close $infh;

foreach my $key (sort keys %alpha_head) {
    print "$key :" . sprintf("%4d", $alpha_head{$key});
    print " " . sprintf("%4d", $alpha_tail{$key});
    if ($alpha_head{$key} < $alpha_tail{$key}) {
        print "  <<!\n";
    }
    elsif ($alpha_head{$key} > $alpha_tail{$key}) {
        print "  <<\n";
    }
    else {
        print "  ==\n";
    }
}
[2003] Posted by kagahiro at 2010/08/23 17:18:13
オープン | 0 point | Link (1) | Trackback (0) | Comment (0)

キーワード

Google 開発者 クイズ 2010 しりとり ソースコード 

ジャパンのホームページ


DevQuiz しりとりで使ったプログラム #gdd2010jp 関連リンク

DevQuizやってみましたが・・・ #gdd2010jp
Google Developer Day 2010 Japan」への参加証を獲得するためのクイズ「DevQuiz」をやってみました。結果はラウンド3のしりとりLv3までクリアして時間切れ終了でした。「パックマン」は難しかったですね。結局、仕...

DevQuiz しりとりで使ったプログラム #gdd2010jp トラックバック

トラックバックURL :


DevQuiz しりとりで使ったプログラム #gdd2010jpへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (80 PV)
  2. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (5 PV)
  3. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (5 PV)
  4. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (3 PV)
  5. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (3 PV)
  6. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (3 PV)
  7. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (2 PV)
  8. [gcc]iconvで文字エンコードを変換するサンプルプログラム (2 PV)
  9. MySQL [書籍] (2 PV)
  10. SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2020 PV)
  2. Tumblr(タンブラー)のダッシュボードからおすすめ投稿を消す(非表示にする)方法 (169 PV)
  3. グーグルニュース(Google News)日本版が表示できるURL (164 PV)
  4. Google News (グーグルニュース)日本版 (161 PV)
  5. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (157 PV)
  6. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (157 PV)
  7. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (154 PV)
  8. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (127 PV)
  9. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (112 PV)
  10. ウェブページを1回だけリロード(再表示)する方法 (79 PV)

アクセス統計

ディレクトリ

関連サイト