タグ

ブックマーク / mfumi.hatenadiary.org (4)

  • Vimでゲームを作るためのtips - mfumiの日記

    なんかvimゲームを作るのがブームのようなので(w,いくつかvimscriptでゲームを作ってみて分かったことをまとめようと思います. 最初に言っておくと,これはゲーム作成に限りませんが,vimscriptを書くコツはいかに他のvimscriptから似たような処理を見つけて抜き出してくるかだと思います. Redirecting… にいくつか紹介されているので,それのソースを見るのが一番速いと思います^^; ・バッファ作成 もしバッファが作成されていなければ画面を分割して新たにバッファを作り,バッファがあればそのバッファに移動します.(この例では ==MineSweeper== ) let winnum = bufwinnr(bufnr('==MineSweeper==')) if winnum != -1 if winnum != bufwinnr('%') exe "normal \<

    Vimでゲームを作るためのtips - mfumiの日記
    peketamin
    peketamin 2014/04/30
  • CPythonのgrennlet(グリーンスレッド)の実装について - mfumiの日記

    OSが管理するスレッドと違って,ユーザのプログラムによって管理されるスレッドのことをグリーンスレッドといいます.他にもマイクロスレッドとか軽量スレッドとかいったりすることもあるようです.ネイティブスレッド(OSが管理するスレッド)と比較したときのグリーンスレッドの特徴として. ・スケジューリングをユーザプログラム自身がおこなう ・一般にスレッドの切り替えコストはネイティブスレッドより低い ・一つのプログラム内において実行されるグリーンスレッドは一つ (マルチコアでも,OSから見るとあくまでユーザプログラムは一つなので,グリーンスレッドが並列実行されることがない)などが上げられます. greenletとは,PythonのC言語実装であるCPythonにおけるグリーンスレッドの実装の一つです.(2014/4/29現在,greenletはpython2.xのみをサポートしています.また,以下での

    CPythonのgrennlet(グリーンスレッド)の実装について - mfumiの日記
  • pythonのitertoolsのrecipeのメモ - mfumiの日記

    公式にitertoolsのrecipe集があるのでそれのメモ. バージョン: python3.3 参考: itertools — Functions creating iterators for efficient looping — Python 3.7.3 documentation ・take(n,iterable) 最初のn個の要素をリストとして返します from itertools import islice def take(n, iterable): return list(islice(iterable, n)) 例 In [76]: take(3,[1,2,3,4,5]) Out[76]: [1, 2, 3] ・tabulate(function,start=0) function(0),function(1),... を返すイテレータを返します. from iterto

    pythonのitertoolsのrecipeのメモ - mfumiの日記
  • Pythonのデコレーターの使い方 - mfumiの日記

    数カ月前にPythonのデコレーターを勉強した時はよく分かんなかったんですが、今日勉強してみたらなんか分かった気がするのでめも。間違ってたらごめんなさい。 以下のサイトを参考にしてます。 ・Python decorator 日語で分かりやすいです。 ・PEP 318 -- Decorators for Functions and Methods | Python.org 例はここのを使用してます。 デコレーターって何? Pythonでクラスメソッドを作成するとき、以前*1は、 class x(): def foo(cls): pass foo = classmethod(foo) と、する必要がありました*2。これじゃ面倒くさいよねってことで考えられたのがデコレーターです。デコレーターを使うと上のクラスは次のように書き換えることができます。 class x(): @classmethod

    Pythonのデコレーターの使い方 - mfumiの日記
    peketamin
    peketamin 2014/03/07
  • 1