コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

きっと何者にもなれない僕だから

月曜日ですがKuinやることにしました

Kuinやります

Kuinとはプログラミング言語です。何ができるのかはよくわかりません。プログラミング言語なんで、何でもできますが僕にはいまいち何に向いているのかよくわかっていない感じです。

そんなわけで散々ガワしかいじってこなかったKuinの内部をいじっていきます。

EA0048: 関数呼び出しの引数の型が異なります。 2番目の引数で「int」を指定すべきところに「int」が渡されました。

などのエラーを出してどうしたらいいのかわからなくなったりしましたが、なんとか動かして私はまだ元気です。今日が月曜日ですがまだ致命傷ぐらいには元気です。ウッ……。

こんなのをつくった

いつものように練習台としてつくる月曜判定です。月曜になると下の画像が表示されます。何もないときは表示されません。もはや何言語でこのような同じ過ちを繰り返しているのかわかりませんが、最近はGUI方面に力を入れていこうと思ってなんか作ってるんで黒い画面よりは見栄えは違うと思います。まあ、現状テキストの表示しかいじってないんで黒い画面と実質やってること変わらないんですけどね。結局変わらない……、人は誤ちを繰り返すのだ……。

f:id:andron:20171022152405p:plain
ソース

func main()
	var wndMain: wnd@Wnd :: wnd@makeWnd(null, %aspect, 600, 400, "月曜日判定")
	var drawMain: wnd@Draw :: wnd@makeDraw(wndMain, 0, 0, 600, 400, %scale, %scale, false)
    var font: draw@Font ::draw@makeFont(null, 28, false, false, false, 24.0)
	var year: int
	var month: int
	var day: int
	var hour: int
	var minute: int
	var second: int
    var dayOfWeek: int

	while(wnd@act())
		do dayOfWeek :: lib@intToDate(lib@now(),&year, &month, &day, &hour, &minute, &second)
		if weekdayCheck(dayOfWeek = 1)
		  do font.draw(100.00,100.0,"Today is Monday!!",draw@white)
		  do font.draw(300.00,200.00,"WASTED",draw@white)
		end if
        do draw@render(60)
    end while
end func

個人的に標準ライブラリの使い方がいまいちよくわからなくてつらかった。ここからもう少し改良したかったんだけどね……。どうなってるんだろうとか思って、Togetterまとめ読んでいたら「あーそういうことか」みたいな納得をしてしまった。まあ、そうなる前にドキュメントを読めって話ですけどね。

さて、そんなわけで月曜日です。例のごとく僕はもうダメですが、それでも生きなきゃならないってところが人生の辛いところですね。

超速‼︎世界のフィズバズ問題

超速ってなんだろう

超速ってどのくらいの速さなんでしょうね。僕は時速でいったら80キロぐらいな感じがします。まあ、明確な定義なんてないので人それぞれですね。人によってはサラマンダーよりははやいのかもしれませんね。さて、そんなわけで今夜もやってまいりました。あの大人気記事の第二弾となります。

第一弾
爆速‼︎ハローワールド - コミュ障だから明日が僕らをよんだって返事もろくにしなかった


まあ、大人気ってのは大嘘ですけどね。前回やっていたKuinの続きが出来たので、作りました。

そして、前回ガワでなく中身をいじるといったな。あれは嘘だ。


Kuinがはやいらしい ~ take 2

前回紹介した「Hello World」以外にも下のような特殊な挙動をする面白要素があるらしいです。そうか…、ならガワバッチの拡張をするしかないですね。

指定した.kn内に「q」の1文字だけ書かれていた場合は「q」を出力するQuineプログラム(自身のソースコードを出力するプログラム)になる。
指定した.kn内に「f」の1文字だけ書かれていた場合は「Fizz Buzz」プログラムになる。
指定した.kn内に「9」の1文字だけ書かれていた場合は童謡「99 Bottles of Beer」の歌詞を出力するプログラムになる。

というわけで、上のような機能があるらしいです。聞きなれない「Fizz Buzz」はこんなのです。

FizzBuzz
プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。

プログラムの世界だと、このルールでコードが書けるかがプログラマの腕試しに使われるそうです。しかし、Kuinだとそんなコードを書く必要もありません。すごいね。


じゃあ早速前回の延長みたいな感じでコードを書いていきましょうかね。

@echo off
rem Quine
rem SET /P X=q<NUL > sample.kn
kuincl -i sample.kn -o sample.exe -e wnd
sample.exe

まずは"Quineプログラム(自身のソースコードを出力するプログラム"です。
f:id:andron:20171014172944p:plain
実行するとこんなんなります。ところで、前回は黒い画面でやってましたが、今回は黒くない画面で実行しています。このあたりの切り替えが簡単にできるのは良いですね。

@echo off
rem FizzBuzz
rem SET /P X=f<NUL > sample.kn
kuincl -i sample.kn -o sample.exe -e wnd
sample.exe

そしてFizzBuzzです。
f:id:andron:20171014174034p:plain
実行するとこんな感じです。ここまでコードを書いていないのになんか動かしている気になれるのはすごいね。


最後におまけで「99 Bottles of Beer」です。

@echo off
rem 99 Bottles of Beer
SET /P X="9"<NUL > sample.kn

kuincl -i sample.kn -o sample.exe -e wnd
sample.exe

f:id:andron:20171014173731p:plain
実行するとこんな感じです。

作ってて思ったけど、バッチファイルだとechoで強制的に改行されてしまうのね。その辺の修正が面倒だった。まあ、次回こそは中身の方を作っていきたいね。アップデートで面白挙動が追加されたらその限りではないがな。

~ 拍動

とくん

じっくりことこと はじまりました
おはようこざいます 僕です

いつも通り訳わかんないタイトルでごめんなさい。最近色々と思うのですよね。どうして僕はここにいるんだろうとかそんなことを。心臓がはじまると嫌でも人は場所を取るものだとはよく言いますが、僕には居場所なんてどこにもないんですよね。なのに、なんでこんなことをしているのだろうとかって。

なんで、こんな暗い話してるんでしょうね?



CSSでアニメーション

そんなわけで久しぶりにCSSをいじります。なぜかというとなんとなくです。いつもどおりよくわかんない理由でCSSいじってますね。まあブログ書く理由が人それぞれなように理由なんてそんなもんです。

こんなのを作ってみる



ソース

.heart{
   animation: heart 1s linear .4s infinite;
}
@keyframes heart {
  0%{ transform: scale(1.2); }
  100%{ transform: scale(0.5); }
}

transform: scale()で大きさ変えられます。
アニメーションをループさせるとき100%から0%に戻るときは一瞬でループするので、そういったことを考えて作らないとうまく「ドクンッ」って感じにならないんですね。キーフレームを使って動かすときは時間の流れを意識しながら描かないと思ったようなループアニメにならないなって思った。



余談

今後も、こういったCSSアニメの使い方みたいなやつ稀にやっていこうかなと画策してたりします。ぶるぶるアニメの作り方ばかり分かっても面白く無いですしね。なんか楽にアニメーションを作る方法とかを知りたくなってしまったので突発的にやるよって算段です。多分こんなの作っていくうちにコツとか掴めるようになってくるんじゃないかなとかそんな考えですね。まあ、自分の中でどこまで吸収できるかわかりませんけどね。とりあえずやってみようの精神です。

過去のぶるぶるアニメ
inujini.hatenablog.com