サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
前にPythonの勉強を軽くしたものの、短期間で基本的な部分だけをサラッとやったために時間が経ったら忘れてしまってました。 で、久々に何となく書きつつ、 「あ、pythonはeqとかなくて判断する時は==一種類でいいんだったっけ。」 とかうろ覚えのままif文書いてたので if data == None: print 'OK' みたいな文を書いてたんだけど、他の人のコード見てたら if data is None: print 'OK' ってのが出てきて、 「あー!isとかあるんだっけ!」 となり、data == Noneって書き方が間違ってるのかどうか確かめることに。 結果は間違ってるみたいですね。Noneの比較はisを使いましょうと書いてありました。 isと==じゃググっても上手くヒットしなかったんですが、何とかJared Grubb: Python: "is None" vs "==No
fn fill(x, y): if not Inside(x, y) then return let s = new empty stack or queue Add (x, y) to s while s is not empty: Remove an (x, y) from s let lx = x while Inside(lx - 1, y): Set(lx - 1, y) lx = lx - 1 while Inside(x, y): Set(x, y) x = x + 1 scan(lx, x - 1, y + 1, s) scan(lx, x - 1, y - 1, s) fn scan(lx, rx, y, s): let span_added = false for x in lx .. rx: if not Inside(x, y): span_added = fals
中学生でもわかるベジェ曲線 を読んでなるほどなーと思い、理解の確認でPythonでベジェ曲線のクラスを実装した。 #! /usr/bin/python2.7 # coding: utf-8 # bezier.py # ref: http://ruiueyama.tumblr.com/post/11197882224 def pt(p, q, t): assert 0 <= t <= 1 return [a + (b - a) * float(t) for a,b in zip(p, q)] def mid(p, q): return pt(p, q, .5) class Bezier: def __init__(self, ctrls, dt=3*1e-3): self.ctrls = ctrls self.dt = dt def __iter__(self): ctrl = self.c
What is a Roguelike? One does not simply ask "What is a Roguelike". The term "roguelike" is still growing in popularity to describe any game with procedural content generation, or punishing difficulty. RogueBasin is meant to serve as a repository of knowledge mostly for Traditional Roguelikes. What is a Traditional Roguelike? A traditional Roguelike is usually described as a computer game with a s
Bresenham(ブレゼンハム)の直線描画を行います。 Jack Bresenham さんはアメリカのWinthrop(ウィンスロップ)大学のコンピュータ科学の教授だそうです。 (ちなみにBresenhamアルゴリズムをgoogleで検索するとかなりコード間違えてるサイトが上位にくるので注意してね。 2005.5) 直線描画において、一般的な数学の公式を使うと、傾きなどを求めるときにどうしても誤差がでてしまいます。 また誤差がでないように全長からの比率で位置計算を行うと、割り算を使う都合上、非常に遅いルーチンになります。 なのでブレゼンハム方式で直線描画を行います。 ブレゼンハム方式は全てが整数演算で、割り算もないので非常に正確高速です。
単なる長方形ではなく、複雑な形をした領域の「塗りつぶし」を行うアルゴリズムを考えてみます。ここで考える領域とは、「指定された点と繋がっている同じ色の場所の集合」であり、その領域内に指定された色を置いて行くアルゴリズムを検討してみましょう。 最も単純に考えれば、指定された点を出発点に「周囲に出発点と同じ色のドットがあれば色を付ける」処理を繰り返せばよい事になります。つまり、自分の周囲を見て色を付ける処理を再帰的に行うアルゴリズムです。 最初はそもそもJava で再帰が上手く働くか不安だったのですが、小さい領域ではうまく動くようです。最も、大きくなるとどうなるか不安は残りますが。 まあ、大きな領域で実行する時には改めて最適化するとして、今回はとりあえず32*32の配列を対象に「塗りつぶし」処理をやってみましょう。これくらいならどんな処理系でも大丈夫.....だと思います。 まず、配列の各要素を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く