読者です 読者をやめる 読者になる 読者になる

プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

140文字プログラム集(7)

Twitterアカウント(@eida_s)上でつぶやいた、140文字以内でできているプログラムのまとめ(7)です。

なお、まとめ(1)から(6)のリンクは以下の通り。
140文字プログラム集(1)
140文字プログラム集(2)
140文字プログラム集(3)
140文字プログラム集(4)
140文字プログラム集(5)
140文字プログラム集(6)


■140文字プログラムNo.20 140エディタ (2013.01.31)

CLEAR:B=1↓
@0↓
IF A+B>0THEN CLS?A$"■↓
K$=INKEY$()A=LEN(K$)B=BTRIG()/64%3X=X+A-(B>1)*(X>0)A$=LEFT$(A$,X)+K$VSYNC 1IF B!=1GOTO@0↓
KEY 1,A$

(132文字)

【遊び方】
ファンクションキー編集用のテキストエディタ
YボタンでBS、Xボタンでファンクションキー1に登録します。
Let's Enjoy!

ちなみに、140文字におさめるために256文字制限をかけてないので、256文字以上入力するとエラーになります。

【プログラムの解説】
ファンクションキーにちょっと登録したい時、実行モードだと32文字までしか入力できないし、プチコン標準エディタは折り返しがないし、ということで作ってみました。

【今回新しく使ったキーワード】
・LEFT$
・KEY

■140文字プログラムNo.21 140フィボナッチ (2013.02.01)

CLEAR:DIM S(99)N=15GOSUB@2:END↓
@2↓
IF N<2THEN F=1RETURN↓
S(P)=N:P=P+1N=N-1GOSUB@2:N=S(P-1)-2S(P)=F:P=P+1GOSUB@2:F=F+S(P-1)P=P-2N=S(P)?F:RETURN

(140文字)

【遊び方】
単に実行してください。
無理矢理な再帰もどきでフィボナッチ数を求めます。
フィボナッチ数とは、
F(n)=F(n-1)+F(n-2) ただし、n>=2 、F(0)=F(1)=1
で定義される関数F(n)にnを代入して得られる数です。
フィボナッチ数F(N)のNは29まで(30以上はOVERFLOW)だけど時間がとてつもなくかかる…。

【プログラムの解説】
フィボナッチ数列を求めるのは、再帰を使わないのが普通のやり方です。
たまにサンプルとして再帰で求める例がありますが、再帰を使うよくない例、みたいなものです。
今回は、無理矢理再帰にしてみました、というサンプルとして作りました。

以下のエントリで、プチコンで無理矢理再帰処理する、ということを解説しています。
プチコンでムリヤリ再帰処理

本当はハノイの塔をやりたかったんですが、140文字ではちょっとおさまりませんでした。
ハノイの塔であれば再帰のサンプルとしては適切ですし、上記プログラムを少し直せばできますのでトライしてみてくださいネ。

【今回新しく使ったキーワード】
・GOSUB
・RETURN


■140文字プログラムNo.22 140ペルシア絨毯模様 (2013.02.03)

P=4/16ACLS:FOR X=-9TO 9STEP P:FOR Y=-9TO 9STEP P:M=X*9+90N=Y*9+90R=X*X+Y*Y↓
GFILL M,N,M+8,N+8,192-ABS(COS(R)*EXP(-SQR(R/4)))*170NEXT:NEXT

(136文字)

【遊び方】
実行するとペルシア絨毯のような模様が描かれます。
P=4/16の16を変えると細かさが変わりますので色々と変えてみて、綺麗な模様になるところを楽しみましょう。
GFILLの5つ目の引数は色に関係しますので、係数をいじって好みの色にしてみてください。

【プログラムの解説】
以下URLから移植
http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%BB%B2%B9%CD%BC%C2%CE%E3%BD%B8%A1%A7%A5%A4%A5%E1%A1%BC%A5%B8%BF%DE

色をABSで指定している通り、Z軸方向に±の値をとるので、本当は三次元にした方が面白い図なので、改造してみてください。

【今回新しく使ったキーワード】
・EXP