タグ

algorithmとgameに関するReLaxのブックマーク (2)

  • 本格的なシューティングゲームを実現するタスクシステム:CodeZine

    はじめに タスクとは「Windowsはマルチタスクだ」という時のタスクに同義ですが、プログラム的にはオブジェクトに近いです。シューティングゲームを作る場合は「自機」「敵」「敵出現制御」「得点管理」「タイトル画面」など、ゲームを構成する全ての要素をタスクとします。 タスクシステムとは、これら複数のタスクを管理する仕組みであり、現在でもプロの現場で用いられています。長所は次の通りです。ジャンルを問わず様々なゲームに適用できる並列処理をうまい具合に実現できるゲームの流れを自然な形で表現できる大規模なゲームも開発できるタスクごとに独立しているため、複数人で開発できる  一方の短所は、タスクシステムの歴史が古いことに起因する、高すぎる自由度です。さまざまな実装方法があり、またオブジェクト指向が一般的ではなかった時代の手法なためか、スパゲティプログラムや、データの隠蔽化が不十分なプログラムとなっている

  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
  • 1