「#俳句プログラミング プチコンテスト 2015」ピックアップ Vol. 1

慧: こんにちは! 「俳句プログラミング プチコンテスト」の応募されたコードをピックアップして紹介していくよ。毎回言うけど、別に良い悪いって話じゃないからね! たくさん応募があるから、他の人のコードを参考にアップデートしてもいいし、バグがあったらつっこむのもアリだよ!
みんなのツイート
みんなのコードを見るには、Togetter まとめ から。たくさん応募待ってるよ~。
ピックアップ No.1 (なでしこ)
ひとつ目は、最初の応募作品。「ソースコードで俳句」部門だね。
#俳句プログラミング @pronama
【ソースコードで俳句部門】手始めに簡単なプログラムをば.https://t.co/hemz7itLdK— 3846masa (@3846masa) February 26, 2015
# @3846masa | |
尋ねたら | |
それを2で割り | |
言ってやる |
なでしこだと、575 できちゃうんだね。季語が難しそうだけど。
ピックアップ No.2 (F#)
次は、F# で縦書き表示だね。今回いろいろなコードを募集しているけど、お題に困ったら縦書き表示のプログラムを応募してみてね。
#俳句プログラミング @pronama
「俳句を出力するプログラミング部門」 早速、F# でプログラム作ってみたよー!https://t.co/Mv06UlAa0A— 水橋ミョウガ(Myoga S.B.) (@Myoga1012) February 26, 2015
// コマンドライン引数に俳句を半角スペースで5・7・5に区切って入力してから、実行します。 | |
[<EntryPoint>] | |
let main argv = | |
// 文字数1番多い行の文字数を求めます。 | |
let max = ( argv |> Seq.maxBy( fun a -> a.Length ) ).Length | |
// 各行は上で求めた文字数になるように、全角スペースで末尾をパディングします。 | |
let argv2 = argv |> Array.map( fun a -> a.PadRight( max, ' ' ) ) | |
// 文字列のを縦書きになるように並び替えて、出力します。 | |
Array.init max ( fun i -> System.String( [| for j in 0..argv2.Length – 1 -> argv2.[j].[i] |] |> Array.rev ) ) | |
|> Array.iter( fun v -> v |> printfn "%s" ) | |
0 |
俳句自体は、コマンドライン引数に 5 7 5 に区切って入力っていう方法だね。
ピックアップ No.3 (C++)
続いて、C++。これは、俳句を出力しているし、コード中に俳句も書かれているパターンだよ。
@pronama さすがにやっつけすぎるかと思ったのでつけなかったのですけど、枯れ木も山の賑わいということで http://t.co/7AhE6YUg2c #俳句プログラミング
— 明衣(あかは) / みすと (@mist_fog_) February 26, 2015
#include <iostream> | |
using namespace std; | |
#define kakikueba int main() { cout << "huruikeya\n"; | |
#define kaneganarunari cout << "kawazutobikomu\n"; | |
#define houryuuji cout << "mizunooto\n"; return 0;} | |
kakikueba | |
kaneganarunari | |
houryuuji |
ピックアップ No.4 (CoffeeScript + HTML)
次は、CoffeeScript。
Post Edited: Vue.jsで俳句を表示するよ! #俳句プログラミング @pronama http://t.co/q3akZCw2A8
— みすど(22歳 男性 千代田区美人OL) (@MysticDoll) February 26, 2015
http://t.co/Vlxbo0WwNH でさっきのやつ結果見れます #俳句プログラミング
— みすど(22歳 男性 千代田区美人OL) (@MysticDoll) February 26, 2015
do -> | |
poems = [ | |
{creator: "正岡子規", kamigo: "赤とんぼ", nakashichi: "筑波に雲も", shimogo: "無かりけり"}, | |
{creator: "松尾芭蕉", kamigo: "五月雨を", nakashichi: "集めてはやし", shimogo: "最上川"} | |
] | |
haikuVM = new Vue | |
data: | |
haikus: poems | |
haikuVM.$mount '#haiku' | |
return |
<html> | |
<head> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/0.11.5/vue.min.js"></script> | |
<style>h3{white-space: pre }</style> | |
</head> | |
<body> | |
<div id="haiku"> | |
<div v-repeat="haikus"> | |
<h1>{{creator}}</h1> | |
<h3> {{kamigo}}</h3> | |
<h3> {{nakashichi}}</h3> | |
<h3> {{shimogo}}</h3> | |
</div> | |
</div> | |
<script src="./haikuVue.js"></script> | |
</body> | |
</html> |
単純に俳句を表示する部類に入ると思うけど、Vue.js というデータバインディングライブラリを使った作品。後発のライブラリで、軽量・高速が特徴みたいだよ。
ピックアップ No.5 (RFO BASIC)
@pronama タグ忘れた→作りました!でも、なぜかシュールに…汗 言語はBASIC!(RFO BASIC) 3句地味に表示するだけです。 #俳句プログラミング
ソース:http://t.co/jojTxgeeWo 動画:http://t.co/vhqjZwtV8Z— BASIC!友の会 (@basictomonokai) February 26, 2015
次は、BASIC! で、Android 環境だよ。RFO BASIC! for Android という環境を利用しているみたい。
私の画像データも活用してくれている作品で、オリジナルの俳句を表示しているよ。
コードは、長すぎるので省略! 画像データも base64 形式でコードに埋め込まれているから、すごいことに……。
ピックアップ No.6 (SmileBASIC)
次は、プチコンの SmileBASIC。
色々とミスがあったんで修正しました。一画面です。 #俳句プログラミング #petitcom @pronama pic.twitter.com/1PJtUb72SL
— [email protected]べーしっ君 (@otta777) February 26, 2015
@pronama #俳句プログラミング 画面はこんな感じです。平仮名だと5・7・5文字とは限らないのでプログラムにはちょっと細工が要ります。今どうするか思案しています。(^^;; pic.twitter.com/2FiG6toAQz
— [email protected]べーしっ君 (@otta777) February 27, 2015
縦書き変換のプログラムに加えて、27行目の TALK 命令で、音声出力もあるのがポイントかな。プチコンならではの手軽さだね。
ピックアップ No.7 (BASIC)
次は、ポケコン SHARP PC-1260 で BASIC!
I—–I
Iヘ マ ホI
I゙ タ ゚I
I! ゙ ケI
Iシ マ コI
Iッ タ ンI
Iク ゙ モI
I ケ I
I ゙ I
I ン I
I エ I
I キ I#俳句プログラミング@pronama pic.twitter.com/8PK0iUNxyL— まぼろしのおに@がんばれない (@Mavoroshi_Oni) February 26, 2015
使用言語:BASIC
使用機材:SHARP PC1260+CE-125S
■ソースhttps://t.co/dDDPsU26MQ
■動画(まだ処理中)https://t.co/LsAH8QOPjU#俳句プログラミング@pronama— まぼろしのおに@がんばれない (@Mavoroshi_Oni) February 26, 2015
10 CLS | |
20 DIM S$(3)*24: DIM SS$(3)*24 | |
30 S$(2) = "ポケコンモ" | |
40 S$(1) = "マダマダゲンエキ" | |
50 S$(0) = "ベ!シック" | |
60 LPRINT "I——-I" | |
70 FOR I=1 TO 24 | |
80 FOR J=0 TO 2 | |
90 SS$(J) = MID$(S$(J), I, 1) | |
100 IF SS$(J)="" THEN LET SS$(J)=" " | |
110 NEXT J | |
120 IF SS$(0)=" " AND SS$(1)=" " AND SS$(2)=" " THEN GOTO 150 | |
130 LPRINT "I " +SS$(0)+" "+SS$(1)+" "+SS$(2)+ " I" | |
140 NEXT I | |
150 LPRINT "I——-I |
機械がが古すぎて印字がうまくできなかったみたいだけど、LPRINT 命令で、紙に出力するのがポイントだね。
ピックアップ No.8 (jQuery)
JavaScript(jQuery)の作品。
jQuery (JavaScript) で作ってみました。無理やり縦書きです。いろいろな俳句を入れてみて下さい。一部を勝手に書き換えます!https://t.co/6ppCXXvNQK@pronama #俳句プログラミング pic.twitter.com/LDj2SkaGHr
— たけまる (@felis_catus_) February 26, 2015
ちょっと AA みたいな縦書きの方法だね。俳句を入力して実行するんだけど、goo 形態素解析 API を使って、一部の単語をが置き替えちゃって新しい俳句を作るのが新しい!
ピックアップ No.9 (Ruby)
Ruby の作品。
@pronama ランダムな俳句を生成しますが辞書ファイルが別に必要です… #俳句プログラミング https://t.co/kYsuqmust4 pic.twitter.com/ivLyCBwkYz
— きしもと (@ksmakoto) February 27, 2015
#! /usr/local/bin/ruby21 | |
require 'csv' | |
F, S = [], [] | |
open("naist-jdic.csv", "r:EUC-JP:UTF-8"){|file| | |
file.each_line {|buf| | |
a = buf.split(",") | |
next if a[13] != "" | |
if a[11].length == 5 then F << a[0] | |
elsif a[11].length == 7 then S << a[0] | |
end | |
} | |
} | |
loop { | |
print "%s %s %s\n" % [F.sample, S.sample, F.sample] | |
sleep 1 | |
} |
辞書データ「NAIST Japanese Dictionary」を読み込んで、5 7 5 の単語からいろいろな俳句を出力する、俳句生成系のパターン! もう少し俳句っぽくなるデータの辞書だとよさそう。
ピックアップ No.10 (Ruby)
次も Ruby の作品。
@pronama https://t.co/9sfyvMdFjJ
尾崎放哉の「咳をしても一人」を表現しました。
他人がいればいるほど、一人って強調されるよな〜と思って。
配列[cough]をシャッフルして、この順番になったときに咳をするようにしています。#俳句プログラミング— はっとりぬ (@moroku0519) February 27, 2015
@pronama 実行結果はこんな感じです。 pic.twitter.com/aiqX219A8O
— はっとりぬ (@moroku0519) February 27, 2015
sounds=%w(c o u g h) | |
cough = sounds.shuffle | |
count = 0 | |
while (sounds != cough) | |
cough.shuffle! | |
print sounds != cough ? "(⊙ ω ⊙)" : " (´・ω・`)ゴホン " | |
count += 1 | |
(1..count).each{|c| print c != count ? "(⊙ ω ⊙)" : "(⊙ ω ⊙)\n" } if sounds == cough | |
end | |
p "咳をしても一人" | |
p (count*2).to_s + "人の中で一人です" |
自由律俳句「咳をしても一人」を表現した意欲作! たくさんの顔文字の中で、ひとりだけ咳をしている顔文字が出力されるよ。
以上、Vol.2 へ続く!
応募方法は、「プロ生ちゃん #俳句プログラミング プチコンテスト 2015」を確認してね。ハッシュタグと「@pronama」を含めてツイートだよ!
最新記事 by kei (全て見る)
- 自作PC・MOD PCコンテスト作品「しろたんPC」 - 2021/01/22
- 自作PC・MOD PCコンテスト作品「X68030 PROnama-68K」 - 2021/01/22
- 自作PC・MOD PCコンテスト作品「モンスターすぺっくマシン Ver. 2.03(ポチ子仕様)」 - 2021/01/12