「#俳句プログラミング プチコンテスト 2015」ピックアップ Vol. 3
慧: おまたせ! 「俳句プログラミング プチコンテスト」の応募されたコードをピックアップして紹介していくよ。今回はその3回目。毎回言うけど、別に良い悪いって話じゃないからね! たくさん応募があるから、他の人のコードを別言語に移植や、バグがあったらつっこむのもアリだよ!
ピックアップ No.21 (Ruby)
最初は、Ruby。ツイートで済む長さだね。
@paiza_run ruby:s=["古池や","蛙飛び込む","水の音"]
puts "n#俳句プログラミング @pronama"
7.times{|i|
2.downto(0){|j|
print (s[j][i]==nil)?" ":s[j][i]
}
puts}— らなとす@博課ピヨピヨ (@Ranats85) March 2, 2015
ツイートすると実行結果を返してくれる @paiza_run を利用した作品。結果はこちら。
@Ranats_rifle
#俳句プログラミング @pronama
水蛙古
の飛池
音びや
込
む
#paiza_run_result
— paiza_run (@paiza_run) 2015, 3月 2
ピックアップ No.22 (C#)
次は、C#。斜め上を目指す?
@pronama 俳句プログラミング、参加してみたよー!斜め上を目指しました。http://t.co/9XZ5fN1CL7 #俳句プログラミング
— オノッチ (@onotchi_) March 3, 2015
ほんとに斜め上だよ! コードは、俳句プログラミング – Onoty3D から。
ピックアップ No.23 (Excel VBA)
次は、Excel VBA の作品。
Excel VBAで俳句を縦書き表示。一文字ごとにセルを一つ使っています。俳句、フォントの種類・サイズ、セルのサイズの変更はご自由に。 #俳句プログラミング https://t.co/YBijPDXgx5 pic.twitter.com/6HGoqFrqiM
— ありにゃん@PC・IT用 (@Win_CSharp) March 3, 2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
縦書き変換は、二重 For~Next の5行だけ。列と行がある言語は簡単だね。C# で Excel 操作バージョン も投稿してくれてるよ。
ピックアップ No.24 (HSP)
続いて、HSP!
https://twitter.com/tasteless0wash/status/572767119948959746
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title "#俳句プログラミング " | |
font "@MS P明朝",42 | |
pos 10,10 | |
mes "古池や\n 蛙飛び込む\n 水の音" | |
pos 200,200 | |
celput 0, 0, , ,(M_PI/2) |
縦書きフォントで描画して、画像を回転するっていうアイデア賞!
ピックアップ No.25 (SmileBASIC)
次は、プチコンの SmileBASIC だよ。
.@pronama #俳句プログラミング #smilebasic #petitcom
「春の海 ひねもすのたり のたりかな」です。海を眺めて波の音を聴きながら過ごしましょう。 http://t.co/D9ZvrXpjMz pic.twitter.com/zTbzg8VX4H— Gust Notch? (@gust_notch) March 3, 2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
短いコードで、「春の海 ひねもすのたり のたりかな」のゆったりとうねった海自体を表している素敵な作品だよ。
ピックアップ No.26 (Python)
次は、Python 3 で1行プログラム!
Python3 もうちょっと何とかしたいけど… #俳句プログラミング @pronama http://t.co/QZCd4nt0ux
— みすと / 明衣(あかは) (@mist_akaha) March 4, 2015
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)] |
縦書き変換するプログラムだね。149文字かな? もうちょっとで1ツイート分!
ピックアップ No.27 (C#)
次は、C#。
https://twitter.com/hority/status/573072238267670528
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} | |
} |
Main のところを見てみて。コード中に、俳句が登場するパターン! 結果は俳句をそのまま横書きで出力するよ。
ピックアップ No.2 (AppleScript)
次は、AppleScript と JavaScript とふたつの応募。
https://twitter.com/ZAKUROISHIKURO/status/573310203661189120
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 という環境だよ。
Windowsの不具合を修正しました。
「奥の細道 縦書き」 http://t.co/u8jNibpBQ2 #俳句プログラミング pic.twitter.com/01zIRIPPqA— Kenji Kojima ある時は 小島健治 (@kenjikojimacom) March 5, 2015
よみがな情報付きのテキストを読み込んで、縦書き表示にしているみたい。コードは、HTML の中に埋め込んで書けるんだね。LiveCode の作品をたくさん応募してくれていて、また次でも紹介していくよ。
オマケ
プロ生ちゃんダミー画像生成サービス を使ってくれた作品!
@pronama http://t.co/uTNn64kHFu 流石にこれは #俳句プログラミング ではないけど! pic.twitter.com/mnvOvxWSZN
— たけまる (@felis_catus_) March 5, 2015
paiza.IO コラボ開催中!
ギノ株式会社が無料で提供しているオンライン実行環境 paiza.IO とコラボイベント開催中だよ! 対応言語が限られるけど、対応言語で応募してくれた人は、paiza.IO でも応募してみてね。
最新記事 by kei (全て見る)
- プロ生ちゃんチョコプログラミングコンテスト2024開催! - 2024/02/13
- HSP プログラムコンテスト2023 結果発表&プロ生ちゃん賞発表! #hsp3 - 2023/12/04
- プロ生ちゃんクリスマスプログラミングコンテスト2023開催! - 2023/12/04