programmingに関するmugen1upのブックマーク (29)

  • BulletMLによるシューティングゲームの構築 - ゲームプログラムめも日記

    BulletMLを使ってシューティングゲームを構築すると、 こんな形に落ち着くのでは、というkenmoの実装例をメモ書き。 BulletML BulletMLはどんなものか簡単に解説しますと、 XMLを解析して「弾幕」を生成するだけです。 なので弾を発射する「敵」の動きは別に作る必要があります。 そこでkenmoが考えたのが、 BulletML:弾幕生成 スクリプト:敵の出現パターンの生成 という役割分担です。 これにより、メインループとなるシーンクラスから、 敵クラスと弾クラスの分離を行おうと考えたわけです。 あと、BulletMLの仕組みについて押さえておきたいのが、 「Action」と「Bullet」というクラスから成っている、ということです。 この2つのクラスは互いに集約(参照)している、という関係を持っています。 そして、BulletMLのエントリポイントが「topAction(

    BulletMLによるシューティングゲームの構築 - ゲームプログラムめも日記
    mugen1up
    mugen1up 2008/12/31
    bulletmlを利用した設計例。
  • melancholic afternoon

    Windowsの場合, 4KBのページ単位でよければTIB(thread information block)経由でスタック消費量を取得できる. #include <winnt.h> int GetStackSizeByTIB() { NT_TIB *tib; __asm { mov eax, dword ptr FS:[18H]; mov tib, eax; } return (int)tib->StackBase - (int)tib->StackLimit; } 配列を使う関数で配列のサイズを少しずつ大きくしながらGetStackSizeByTIB()を見ると4KB単位で増えていくのを観察できる. 「スタックオーバーフローのハンドリング」が大変詳しそう. 昨日のプログラムでスタック領域をマジックナンバーで埋めるところで大きいアドレスから書き込んでいるのはそうしないと例外で落ちるか

    mugen1up
    mugen1up 2008/12/12
    スタック消費量を調べる
  • アセンブラめも - やや温め納豆

    C言語とアセンブラの対応を理解するには最適化の為のアセンブラ入門がとってもわかりやすい。昼休みに読める。とりあえず頭を整理するためにちょっと書く。アセンブラがちょっとずつ読めるようになってきて楽しい。 #include <windows.h> #include <tchar.h> #include <boost/typeof/typeof.hpp> template <typename T> T __stdcall f(T arg) { BOOL success = FALSE; HMODULE ntoskrnl = ::LoadLibrary(_T("ntoskrnl.exe")); FARPROC ssdt = ::GetProcAddress(ntoskrnl, "KeServiceDescriptorTable"); return arg; } int _tmain(int arg

    アセンブラめも - やや温め納豆
    mugen1up
    mugen1up 2008/12/12
    アセンブラめも
  • 最適化の為のアセンブラ入門

    現在、アセンブラを使わなければならないという状況はあまりありませんが、最適化をする場合はアセンブラを知っている方がなにかと有利です。特に、コンパイラの吐いたコードを吟味することはとても重要です。よってここでは、アセンブラコードを読む能力と、簡単なアセンブラコードを書く能力を身に付けることを目標とします。 この記事は Windows 上で VC++ を使う場合を想定して書いていますが、BCC でも殆ど同じですし、gcc でも少し書き方を変えれば使えます。Intel のプロセッサ上で動く Linux 等でも基的な部分は同じですし、命令セットの異なるプロセッサでも、基的な部分は役に立つと思います。ターゲットは Intel Pentium 系プロセッサです。 第0回 アセンブラってどういうもの? 第1回 代入と基的な演算 第2回 定数とメモリの扱い 第3回 レジスタについて 第4回 分岐命

  • ページ移転のお知らせ

    ユークエスト株式会社は2021年10月1日をもちまして、 株式会社東光高岳に吸収合併を致しました。 Webサイトは下記のURLに移転しました。 https://uquest.tktk.co.jp/ ※5秒後に移転先にジャンプします。

    mugen1up
    mugen1up 2008/12/07
    自分の確認用+部下に勧める用
  • checkstack.pl で関数のスタック消費量を調べる - bkブログ

    checkstack.pl で関数のスタック消費量を調べる Linux カーネルのソースコードに付属する checkstack.pl を使うと、C/C++ のプログラムの関数のスタック消費量を調べることができます。checkstack.pl は objdump -d のディスアセンブルの出力からスタックポインタの操作をパターンマッチしてスタックの消費量を計算しています。 入手方法 checkstack.pl は Linux カーネルのソースコードに付属しています。Debian GNU/Linux sarege なら次のようにコマンドラインから実行して取得できます。ソースツリーに含まれる scripts/checkstack.pl が目的のものです。 % apt-get source kernel-source-2.6.8 使い方 checkstack.pl の使い方は簡単です。スタックサイ

  • あなたの知らないJDKの便利ツールたち

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 標準JDKに含まれる便利なツール 読者の皆さんは、最近のJDK(Java SE)に、開発やデバッグに便利な新しいツールが含まれていることをご存じでしょうか? 古くからのJava開発者は、古い時代のJDKのツールしか知らず、一方で新しいJava開発者はEclipse/NetBeansなどの統合開発環境に慣れてしまい、細かなコマンドツールを直に使う状況が減ってきているかもしれません。 そこで今回は、最近のJava SE 6含めて比較的新しいと思われるツールを以下の5種類に分けて紹介します。 プロファイリング トラブルシューティング/情報取得 監視 配備/補助 スクリプティング 「こんなツー

    あなたの知らないJDKの便利ツールたち
  • Befunge - Wikipedia

    Befunge は難解プログラミング言語の一つ。手続き型、スタック型で、自己変更的な言語である。実用言語ではない難解プログラミング言語のひとつ。 この言語のプログラムの命令は一次元の列ではなく二次元の格子上に並んでいて、実行する向きを上下左右に変更できる。この言語の任意の1命令は、ソースコード中で1文字で表現される。したがって、ソースコード中の行と桁がプログラムの格子の位置に対応する。 1993 年、Chris Pressey が「コンパイルが困難な言語」として作った。Befunge-93 はプログラムのサイズが 80 桁 25 行に固定されている。Befunge-93 の拡張 (一般化) である Funge-98 にはこの制限は無く、チューリング完全である。さらに Funge-98 には任意次元への拡張やマルチスレッド対応等が含まれている。 プログラム例[編集] "Hello, Worl

  • Befungeでネギを振ってみた

    難解プログラミング言語の一種です。今回使ったBefunge-93はソースコードに80桁25行の制限があります。20桁4行と、それなりにきれいに納めたつもりですがいかがでしょうか?▽ソースを解説して下さったサイトがありましたので紹介します。こんなアレなソースを解読していただき、ありがとうございます。http://d.hatena.ne.jp/tkuro/20090313/1236918771▽Brainfuck:sm4996423 Whitespace:sm5016279 他の制作物:mylist/8672693

    Befungeでネギを振ってみた
  • Brainfuckでネギを振ってみた

    難解プログラミング言語の一種です。ソースの最適化をしていないので、冗長気味です。 Befunge:sm5006311 Whitespace:sm5016279 他の制作物:mylist/8672693

    Brainfuckでネギを振ってみた
  • Part5 エラーの原因を探れ! - C/C は永久に不滅です!:ITpro

    C/C++の実行プログラムはバイナリ・ファイルですから,テキスト・エディタで編集できるソースコードとの間には大きなギャップがあります。特に予期せぬエラーが発生するとそのギャップは問題解決の大きな障害になります。両者のギャップを埋めることで,C/C++のコンパイル~リンク~ロードの様子を探検してみましょう*1。 プログラミングで誰もがお世話になるソフトウエアと言えば,コンパイラかインタプリタであろう。 正確な表現ではないが,コンパイラはソースコードから実行ファイルを生成し,インタプリタはソースコードをそのまま実行してくれる。その機能さえ知っていれば,両者をブラックボックスとして扱ってもプログラムは作成できる。実際,難しいことを知らなくてもプログラミングできるようにブラックボックス化が進んできたのが,現在の開発ツールであり開発環境だ。 20年前なら,ただコンパイルを実行するだけでも,複雑なコマ

    Part5 エラーの原因を探れ! - C/C は永久に不滅です!:ITpro
  • iOS 17 - Apple Developer

    ウィジェットとライブアクティビティ ウィジェットがさらに多くの場所で活用できるようになり、パワーアップしました。WidgetKitを使ってインタラクティブな要素やアニメーションによるトランジションに対応すると、ユーザーがウィジェットから直接アクションを実行できます。既存のウィジェットにわずかな変更を加え、iOS 17向けに再ビルドするだけで、iPhoneのスタンバイ画面、iPadのロック画面、Macデスクトップ上で視覚的に美しく表示させることができます。SwiftUIを使用すると、ウィジェットの色と間隔がコンテキストに合わせて自動調整されるため、複数のプラットフォームで使いやすさが増します。 WidgetKitとActivityKitで構築したライブアクティビティがiPadで利用できるようになり、ユーザーはアプリのアクティビティや情報をロック画面からいつでもリアルタイムで確認できます。

    iOS 17 - Apple Developer
    mugen1up
    mugen1up 2008/10/04
    iPhone/iPodTouch開発者用
  • jsdmkun - 兼雑記

    http://shinh.skr.jp/jsdmkun/jsdmkun.html V8 速いなぁもう canvas で BulletML 動くんじゃね、と作ってみました。ううむプラグイン無しでも弾幕が普通に見られる時代に。 sdmkun 作ってた時は Pen 133MHz とかで、当時より速いんじゃないかなぁコレ。 適当に書いたけど Safari でもそれなりに動くなぁ… Firefox はちょっとつらい… あとまぁ FPS カウンタがあからさまにおかしいとか、 accel が無いとか、速度が違うから想定通りに動いてない弾幕があるとか、 horizontal が無いとか、そもそも当たり判定がないとか、色々未実装です。 まぁそいうもげもげよりは、 BulletML をちゃんと JS にコンパイルしてから動作するようにしたいです。そのへんきっちりやれば Firefox でもまともにいける気がす

    jsdmkun - 兼雑記
    mugen1up
    mugen1up 2008/09/16
    chromeの新JavaScriptエンジンが速い?
  • 「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング

    仮想世界と現実世界を融合する技術は,拡張現実感(Augmented Reality:AR)と呼ばれています. おおげさな言い方をするとARは現実の世界に情報を「上書き」することができる技術です. アニメや映画にでてくる「電脳」を想像してみてください. 手のひらの上に3Dキャラクタを表示したり,現実の世界でデジタル・データに触れてみたり… そんな魔法のような技術です. ARToolKitは,ARアプリケーションの実装を手助けするC言語用のライブラリです. ARToolKitを使うと,紙に印刷されたパターンをカメラで読み取り, その上に3Dオブジェクトをオーバーレイ表示するアプリケーションが簡単に作れます. 来は非常に敷居の高い技術なのですが,このライブラリは「難しい部分」の処理を 全てやってくれます. …というわけで今回はARToolKitを使って近未来の技術 「拡張現実感」 を体験してま

  • 森崎修司の「どうやってはかるの?」 > Googleのコードレビュー : ITmedia オルタナティブ・ブログ

    Googleコードレビューのプロセス、ツールの紹介がここ(Youtube)にある。55分と長いのでなかなか全部をみる時間がなかったが、休日に時間がとれたので観た。このエントリはそのときのメモだ。 Googleコードレビューのプロセスはオープンソースのものと似ている。オープンソースのものより若干強制力のあるプロセスとそれをサポートするツール(Mondrian)があるそうだ。ビデオでプレゼンされているのは、Guido van Rossum氏、Pythonの作者でGoogleに就職して最初の仕事がMondrianの開発だったそうだ。定着しているプロセスの実行を支援するツールは非常に頼もしいだろうなぁと思う。 詳細はビデオをみていただきたいが、プレゼンの概要は以下のとおり。 プロセスはオープンソースのレビューのやり方がベースとなっている。 (前のバージョンとの差分をMLに投げるとレビュアがその

    森崎修司の「どうやってはかるの?」 > Googleのコードレビュー : ITmedia オルタナティブ・ブログ
  • BrickOS Command Reference v2.0-0.2.6.10

    mugen1up
    mugen1up 2008/05/18
    brickOS開発者用
  • 言語別ゲームプログラミング制作講座一覧 - ネットサービス研究室

    プログラミング言語別にゲームプログラミングについて解説しているサイトをまとめてみました。ジャンル別ゲームの作り方とアルゴリズムまとめもあわせてお読みください。 Java Javaゲーム作りますが何か? ガメラボ Javaゲームはじめました。 JavaRPGを作ろう! Javaによるゲーム解説 JavaScript JavaScriptゲームの作り方 ゲームの作り方 by BFF (^==^)ドリームキャストでJavaScript JavaScript でテトリスみたいなゲームを作ろう! C++ 0からのゲームプログラミング DirectXでゲームを作ってみよう ゲームプログラミング講座 ゲームプログラミングWiki マルペケつくろーどっとコム http://www5b.biglobe.ne.jp/~u-hei/ サラリーマンの俺が無料ソフトだけで3Dゲームを作るスレ まとめ ゲームつく

  • いまどきのファミコン開発 - takkaw

    197X:14 (2008-04-06)takkaw : http://d.hatena.ne.jp/takkaw/次: sm2910003(mootoh) 最初: sm2902286(gothedistance) マイリスト: mylist/6018192第1回 197X's オフパーティー: http://tinyurl.com/2u5vs7

    いまどきのファミコン開発 - takkaw
    mugen1up
    mugen1up 2008/04/08
    "Write once run anywhere"
  • D言語BOF - D言語研究

    D言語BOF English 撮影した動画をニコニコ動画にうpしました >>> 中継@ustream 10:00〜? /⌒ヽ / ´_ゝ`)すいません、ちょっと場所お借りしますよ・・・ |    / | /| | // | | U  .U オープンソースカンファレンス2008 Tokyo/Spring セミナー会場にて、D言語BOFを開きます。 注: SunのD言語 や MicrosoftのD言語 ではありません ざっくり言語紹介 適当にDで作ったネタ持ち寄ってライトニングトーク (座談会) みたいなかんじで。 日程:3月1日(土) 10:15 - 12:00 開始時間が変わりました 会場:日電子専門学校 7号館(東京都新宿区・JR大久保駅徒歩2分)8F A 参加費:0 当日は予約の確認を行っておりませんので、そのままセミナー会場(8F A)にお越し下さい。 ustream

  • 30分プログラム 最大素因数分解の探索(Project Euler) - Gemmaの日記

    fromみずぴー日記 13195 の素因数は 5、7、13、29 である。 600851475143 の素因数のうち最大のものを求めよ。 ポラード・ロー素因数分解法が面白そうだったのでチョイス。Gaucheで。 (use srfi-1) (use srfi-42) (use math.mt-random) ;;underの大きさは問題に応じて適当に調整してください。問題の数の素因数が全てunder以下なら解けます。 (define under 10000) ;;under以下の数をO(1)で素数判定するためのベクタ (define under-vec (let ((v (make-vector under #f))) (for-each (cut vector-set! v <> #t) ;;under以下の素数のリスト (list-ec (: n 2 under) (if (not (a

    30分プログラム 最大素因数分解の探索(Project Euler) - Gemmaの日記
    mugen1up
    mugen1up 2008/03/14
    アルゴリズムのはなし