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

Development,EventC#,HSP,Python,Ruby,俳句プログラミング

慧: おまたせ! 「俳句プログラミング プチコンテスト」の応募されたコードをピックアップして紹介していくよ。今回はその3回目。毎回言うけど、別に良い悪いって話じゃないからね! たくさん応募があるから、他の人のコードを別言語に移植や、バグがあったらつっこむのもアリだよ!

ピックアップ No.21 (Ruby)

最初は、Ruby。ツイートで済む長さだね。

ツイートすると実行結果を返してくれる @paiza_run を利用した作品。結果はこちら。

ピックアップ No.22 (C#)

次は、C#。斜め上を目指す?

ほんとに斜め上だよ! コードは、俳句プログラミング – Onoty3D から。

ピックアップ No.23 (Excel VBA)

次は、Excel VBA の作品。


Sub Main()
Dim Verse(3) As String, r As Integer, c As Integer, i As Integer, j As Integer
Pix = 40
With Cells
.Font.Name = "HGP行書体"
.Font.Size = "20"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.RowHeight = Pix * 0.75
.ColumnWidth = Pix * 0.118
End With
Verse(1) = "古池や"
Verse(2) = "蛙飛び込む"
Verse(3) = "水の音"
For i = 1 To UBound(Verse)
For j = 1 To Len(Verse(i))
Cells(j, UBound(Verse) – i + 1) = Mid(Verse(i), j, 1)
Next
Next
End Sub

view raw

haiku.vb

hosted with ❤ by GitHub

縦書き変換は、二重 For~Next の5行だけ。列と行がある言語は簡単だね。C# で Excel 操作バージョン も投稿してくれてるよ。

ピックアップ No.24 (HSP)

続いて、HSP!


title "#俳句プログラミング "
font "@MS P明朝",42
pos 10,10
mes "古池や\n 蛙飛び込む\n   水の音"
pos 200,200
celput 0, 0, , ,(M_PI/2)

view raw

haiku.hsp

hosted with ❤ by GitHub

縦書きフォントで描画して、画像を回転するっていうアイデア賞!

ピックアップ No.25 (SmileBASIC)

次は、プチコンの SmileBASIC だよ。


ACLS
R=360:W=399:H=239
C=RGB(80,208,255)
PRINT "はるのうみ"
PRINT "ひねもすのたり"
PRINT "のたりかな"
WHILE 1
BGMMPLAY "@122C1"
A=RND(R)
FOR X=0 TO W
GLINE X,H/2+2*SIN(A+X/40),X,H,C
NEXT
WAIT R
GCLS
WEND

view raw

haiku.bas

hosted with ❤ by GitHub

短いコードで、「春の海 ひねもすのたり のたりかな」のゆったりとうねった海自体を表している素敵な作品だよ。

ピックアップ No.26 (Python)

次は、Python 3 で1行プログラム!


import functools; [print(l[::-1]) for l in functools.reduce(lambda s, w: [i + j for i, j in zip(s, list(w.ljust(7, ' ')))], input().split(), [""]*7)]

view raw

haiku.py

hosted with ❤ by GitHub

縦書き変換するプログラムだね。149文字かな? もうちょっとで1ツイート分!

ピックアップ No.27 (C#)

次は、C#。


using System;
using System.Dynamic;
namespace Haiku
{
class Program
{
static void Main(string[] args)
{
ここで.一句
.柿食えば
.鐘が鳴るなり
.法隆寺();
}
}
class ここで : DynamicObject
{
public static dynamic 一句
{
get { return new ここで(); }
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
Console.WriteLine(binder.Name);
result = this;
return true;
}
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
Console.WriteLine(binder.Name);
Console.ReadKey();
result = this;
return true;
}
}
}

view raw

haiku.cs

hosted with ❤ by GitHub

Main のところを見てみて。コード中に、俳句が登場するパターン! 結果は俳句をそのまま横書きで出力するよ。

ピックアップ No.2 (AppleScript)

次は、AppleScript と JavaScript とふたつの応募。

https://twitter.com/ZAKUROISHIKURO/status/573310203661189120


on displayHaiku(haiku)
set haiku_lines to paragraphs of haiku — 各行 (linesは予約後(の複数形)なので使えない!)
set max_length to 0 — 一番長い行の文字数
repeat with ln in haiku_lines — line、lengthは予約後なので使えない!
set len to length of ln
if max_length < len then set max_length to len
end repeat
set line_count to count haiku_lines — 行数
set tategaki to ""
repeat with i from 1 to max_length
repeat with j from 1 to line_count
set ln to item (line_count + 1 – j) of haiku_lines — 下の行から上の行へ
if length of ln ≥ i then — 文字がなかった場合にエラーが出るからifで分けなきゃいけない
set chr to character i of ln — 一文字ずつ取り出す
else
set chr to " " — 文字数が足りない場合は空白で埋める
end if
set tategaki to tategaki & chr — 文字を追加
end repeat
set tategaki to tategaki & "\n"
end repeat
— 表示
— say haiku — せっかくだから喋らせたかったけど「いにしえいけや」って喋るからやめた
display alert tategaki buttons "よい"
end displayHaiku
displayHaiku("古池や\n蛙飛びこむ\n水の音")

AppleScript だけ紹介。ダイアログに縦書き表示。ボタンの文字も凝っていていいね。

ピックアップ No.30 (LiveCode)

今回の最後は、LiveCode という環境だよ。

よみがな情報付きのテキストを読み込んで、縦書き表示にしているみたい。コードは、HTML の中に埋め込んで書けるんだね。LiveCode の作品をたくさん応募してくれていて、また次でも紹介していくよ。

オマケ

プロ生ちゃんダミー画像生成サービス を使ってくれた作品!

paiza.IO コラボ開催中!

paiza.IO

ギノ株式会社が無料で提供しているオンライン実行環境 paiza.IO とコラボイベント開催中だよ! 対応言語が限られるけど、対応言語で応募してくれた人は、paiza.IO でも応募してみてね。

The following two tabs change content below.
都内の公立高校に通う高校生。部活は、情報処理研究会。身体を動かすのも好きで、気が向いたときはなぜか体育会系の部活に混ぜてもらっていろんなスポーツをすることも。プログラミング生放送のキャラクターとして活動中!