2012-07-01から1ヶ月間の記事一覧

ProcessingにおけるtextAlignの挙動

テキストの配置を揃える際はtextAlignを使うのが便利。textAlign() \ Language (API) \ Processing 1.0 (BETA)しかしどのオプションを与えたらどのように配置されるのかいつも忘れてしまうので、ひと目で見て分かるように描き出してみた。まず全くオプション…

ProcessingでBrainfuckインタプリタ(微修正)

jumpToRとjumpToLを修正。滲み出るスキルの低さ。なんか冗長だし色々間違ってる気がするのでもう人のコードを見てしまおう…。 void jumpToR(){ if(buffer[ptr] != 0) return; int t = 1; while(t != 0){ char c = input.charAt(bfpos); if(c == ']'){ t--; }…

ProcessingでBrainfuckインタプリタ(ver 0.1)

30分くらいかかってようやくHello, world!をコンソールに出力するところまでこぎつける。できてないもの。 入力命令 , の実装。 ブラケット(カギカッコ)の対応関係を調べる。 境界エラーの検出。 メモリとポインタの視覚化。 正直BFでプログラミングする予定…

Pythonでコラッツの問題

問題の定義はコラッツの問題 - Wikipediaを参照。 コードは簡単。数列の形で解を得るようにする。 def collatz(x): lists = [] while x != 1: x = x/2 if x%2 == 0 else x*3 + 1 lists.append(x) return lists ステップ数を得る場合はlenを使う。 len(collat…

joinのデフォルトセパレータ

文字列の配列を結合するさい、Pythonでは "".join(['1', '2', '3']) # => '123' という書き方をする。 区切り文字を入れたい場合は、以下のようにすればよい。 "_".join(['1', '2', '3']) # => '1_2_3' さて、RubyにおいてはArrayがjoinを持っていて、それぞ…

Pythonでパスワード生成

問題文 [2/12/2012] Challenge #4 [easy] : dailyprogrammer ランダムパスワードジェネレータを作りましょう! 解答 まず候補となる文字を用意しよう。 問題文リンク先の、トップバッターの解答者のように、 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS…

Python 2.xでカエサル暗号を一行で書く方法

驚いたので書留めておく。Pythonのencodeとはいったい…うごごご "abcd".encode("rot13") # => nopq またdecryptも "nopq".decode("rot13") で一行で書ける。ワンライナーと呼ぶほどおしゃれなものではない。ときにPythonでカエサル暗号というと、import this…

先頭文字の大文字化(capitalize)を使う例題[7/13/2012] Challenge #76 [easy] (Title case) : dailyprogrammer

redditのdailyprogrammerが楽しげです。 問題 Challenge #76 (Title case) : dailyprogrammer 文字列のそれぞれの単語の先頭文字を大文字にする(capitalize)関数を作る。ただしexceptionsで渡された単語は除いて。なおexceptionsに含まれるものであっても文…

コンソールで確率分布表示[7/13/2012] Challenge #76 [intermediate] (Probability graph) : dailyprogrammer

問題 Challenge #76 (Probability graph) : dailyprogrammer low から high までの出力を持つ関数 f を tests 回実行した時の確率分布を出力する。 def two_dice(): return random.randint(1, 6) + random.randint(1, 6) def graph(f, low, high, tests): pa…