タグ

ブックマーク / mokehehe.hatenadiary.org (6)

  • ネットへのアクセス2 - imHo

    anarchy golf - example_com で、ネットワークへのアクセスがしたかったのだが、Network.HTTP モジュールは入ってないようで使ってもエラーが出る。それどころか、 import Network もエラーが出た。どーしろっつーんじゃああ! 関数型プログラミング言語Haskell Part6#607 に書いてあるが、ソケットを使ったやり方は次の通り: import Network.Socket main = putStrLn =<< do sock <- socket AF_INET Stream 0 addr <- inet_addr "66.249.89.104" >>= \x -> return $ SockAddrInet 80 x connect sock addr send sock "GET / HTTP/1.1\nHost: www.google.

    ネットへのアクセス2 - imHo
  • 東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo

    ダイクストラ法が小さなサンプルデータで動いたら、実際のデータを使ってみたくなるのが人情。東京を走る地下鉄のデータでやってみたいと思った。 JavaScriptとPrototype.jsとGoogleMapsAPIとすったもんだしたあげく、なんとか動くものができた。 502 Bad Gateway テストアプリはこちら JavaScriptのソースはここのhtmlに 駅や路線のデータは駅データ.jpのものを使わせてもらいました。 使ったのは東京メトロ+都営+山手線 駅(ノード)の数は、同じ駅でも路線ごとで別にカウントして 322 駅同士をつなぐ線路(エッジ)の数は、徒歩や乗換えを含め 912 体感もっさり感じるけど、経路の検索以外のところがかなりかかってる Tips Prototype.js Array.without は超重い、使うな! Hash.keys で返ってくるキーはすべて文字列に

    東京を走る路線のデータを使って、最短経路問題をダイクストラ法で解く - imHo
  • オブジェクトリスト - imHo

    何故か書いてしまったduck typing (Haskell,存在型+型クラス) うおおぉぉ!まさにこれだ! ゲームに出てくるオブジェクトを型をあれこれ構わずリストにぶち込んで更新処理や描画処理をぶん回す、みたいな作り方をよくすると思う。C++とかだったら基底型を作って仮想関数を定義してそれを呼び出しという具合で。でも Haskell だとリストには同一の型しか入れられないのでどうしようかと悩んでたところ。 普通に考えられるのは代数的データ型を使って、すべてをひとつのデータ型にしてしまうやり方: data GameObject = Kuribo | Nokonoko | … Monadius がこういうやり方。けどそれぞれの型による関数の分岐を書くのに問題があって、関数ごとに処理を1ヶ所に書かないといけないのでソースを分けづらい: update Kuribo = あれこれ update N

    オブジェクトリスト - imHo
    nsyee
    nsyee 2008/10/23
    存在型の例
  • Frag - imHo

    Frag - HaskellWiki これがHaskellで作られたFPSか…知らなかった。 ダウンロードは Hackageから Yampa, HOpenGL で作られてる テクスチャは tga 卒業論文 ソース見てみよう、でも GPL BangPatterns というのを使ってる ところどころに INVADERS の文字が。Yampa の examples から変更していったぽい。

  • Haskellで敵を踏み潰したりするゲームを作ってみた - imHo

    中途半端だけど、現状の動画をupしますた。 http://www.nicovideo.jp/watch/sm4842293 ソースは http://svn.coderepos.org/share/lang/haskell/nario に置いてあります。 現状 22ソース、1605行 「関数型言語」って身構えることは全然なくて、Cとかで組むのとあまり変わらないよ、っていうかよっぽど楽だよ(パフォーマンスの細かな調整を考えなくてよければ) 存在型でオブジェクトごとにソースを分けたので、敵やエフェクトなどがかなり書きやすくなった Haskellでソースの循環 import ができない 2006-06-27 で回避、しかしメンドイ 結構作り散らせる、引数や型の内容を変更すると関連する部分のエラーを全てコンパイラが見つけてくれるので、かなり楽。修正すれば型に関する実行時エラーは起きないので気分的にも

    Haskellで敵を踏み潰したりするゲームを作ってみた - imHo
  • Yampa - imHo

    YampaとGLUTでmonadiusのタイトル画面みたいに文字列を少しずつ表示してみた(まだ文字列一つだけ)がすごそう。試してみたい!それにはYampa とかいうライブラリ?を入れる必要がある。公式ページに行ってみると、x86/Linux 版と Windows 版のソースが分かれてる。どうしたらいいかわからん…。 cabal-installでhackageからlibraryを楽々インストールを見たらコマンドラインのインストールツールがあるそうなので、それを入れてみる。 CabalInstallからダウンロード ghc --make Setup; ./Setup configure してみると、Cabal, HTTP, zlib のバージョンがあってないといわれるので、そいつらを先にインストール ./bootstrap.sh で一気にインストールで切るらしいが、どこに入ったのかわからなかっ

    Yampa - imHo
  • 1