タグ

ブックマーク / tyfkda.github.io (2)

  • Optcarrotがすごい

    超絶技巧プログラマのku-ma-meさんがファミコンのエミュレータをRubyで書いた、とのこと:Optcarrot: Ruby で書かれたファミコンエミュレータ - まめめも SDL2をインストールして(brew install sdl2 sdl2_image)、リポジトリからcloneしてコマンドラインから起動してみたら(bin/optcarrot examples/Lan_Master.nes)、実際に動いた。ものによって15~30FPSくらいで動く。 エミュレーションが相当よく出来ていて、スプライトとBGの重ねあわせ、ラスタスクロール、スプライトの横制限などちゃんと再現されている。サウンドも--optオプションを付けて起動して処理が間に合えばちゃんと鳴る。このレベルのものをどのくらいの期間で作ったのか気になる…。また、最初からRubyで開発してたとしたらエミュレーションの処理が間に合

    zetta1985
    zetta1985 2019/08/13
  • 【Haskell】ReaderTデザインパターンについて

    HaskellでReaderTを使って組むとよい、という記事を見てちょっと試してみた感想。 The ReaderT Design Patternに、 アプリ全体で参照したい値や書き換えたい値をReaderTで扱うとよい、というようなことが書いてあった。 要点をよくわかってないけど試したところまでメモしておく。 ReaderT の前に、関連するモナドの動作もよく理解してないので復習しつつ。 IORef値を書き換えたい場合、IORefが使える: import Data.IORef (IORef, newIORef, readIORef, writeIORef) square :: IORef Int -> IO () square ref = do x <- readIORef ref writeIORef ref $ x * x main = do ref <- newIORef 1111

    zetta1985
    zetta1985 2019/08/12
  • 1