タグ

ブックマーク / vivi.dyndns.org (8)

  • テキストエディタ実装技術

    バグつぶしばかりやっていると飽きてくるので、目先を変えるために技術的な文書を作成し、ここで公開することにする(01/06/04)。 意見・質問・間違いのご指摘は 津田 までメールまたはツイートしてください。 新着順 「関数電卓」アプリにおける陽関数グラフ描画 (2016/10/09) mate法を用いた Numberlink 問題自動生成 (Jly-2016) Unity C# Script プログラミング 入門(Nov-2015) C/C++ プログラミング 入門(Nov-2014) JavaScript 入門(Nov-2014) C/C++ static 修飾子 入門(Oct-2014) マップクラス std::map 入門(Oct-2014) 双方向リストクラス std::list 入門(Oct-2014) cocos2d-x 3.1 KeyboardTest(Jun-2014) c

  • 手を動かしてさくさく理解する C/C++ コンソールアプリ入門

    はじめに ニコニコ生放送のプログラミング放送を見ていると、ゲーム開発に挑戦している初級者の若者が多い。 が、当人の知識・能力・経験に対して、目標が高すぎてゲーム完成までに至らないケースが多いようだ。これを業界用語で「失踪」と呼ぶ。 彼らは、充分な経験値・武器・魔法もなく、いきなりRPGのラスボス(小規模だが、フルスペックのゲーム開発)に挑んで、ひとひねりされているようなものだ。 ゲーム開発をやり遂げるには、プログラミング言語の知識はもちろん、各種データ構造・アルゴリズム・コーディングテクニック・デザインパターン・ コンピュータグラフィックス・ユーザインタフェース・フレームワークなどのコンピュータサイエンス・工学に関する幅広い基的知識・経験が必要だ。 さらに、ゲームによっては幾何学や微積などの数学や、プロジェクトをどう進めるかといったソフトウェア工学の知識・経験も必要だ。 それらの知識・経

  • C++ iterator 入門

    C++ iterator(イテレータ) とは iterator(イテレータ)とは抽象化されたポインタのことで、コンテナ の要素を指し、移動、要素を参照・変更することが出来る。 iterator(イテレータ)は日語では「反復子」と訳されるが、最近では「イテレータ」と呼ぶことが多いと思う。 もともとは、外部ライブラリであった STL(Standard Template Library) で導入されたものだが、現在では C++ の標準に取り込まれている。 コンテナクラスとSTLアルゴリズムを結びつける結合器的な役割を持つ STLアルゴリズムも現在は標準アルゴリズムとしてC++に取り込まれている イテレータを引数にとる、便利なアルゴリズムが多数用意されている 標準アルゴリズムを使用せず、イテレータ経由でコンテナを操作し、なんらかの処理を行うことも可能 これは、自分でアルゴリズムを書いていることに

  • C++11 乱数 std::random 入門

    rand() の問題点 これまで広く使用されてきた rand() による乱数生成には以下の問題点がある。 生成される範囲が [0, 32767] と狭い rand() % N は一様では無い 周期があまり長くない 乱数生成アルゴリズムが固定(通常は線形合同法) 正規分布など、一様でない乱数生成が面倒 rand() で生成される値の範囲は [0, 32767] と狭い。15ビットしかない。 (rand() << 15) + rand() とすれば、30ビット乱数にすることは可能だが、スマートではないし、 生成アルゴリズムの関係で、乱数に偏りが出る場合がある。 通常、乱数として欲しいのは [0, N) 範囲の値であることが多い。この場合は rand() % N とすることが一般的だ。 しかし、このようにして生成した乱数は一様でなく偏りがある。特に N が大きい時にその現象が顕著になる。 例えば

  • C言語/C++ 処理時間計測 入門

    概要 プログラム開発当初から過度のパフォーマンス最適化を行うのは良くないと言われている。 プログラムソースの柔軟性が失われる可能性があるし、必要無いかもしれない最適化に時間を費やすのは開発工数管理的に好ましくないからだ。 プログラムがある程度動作するようになり、パフォーマンスが悪い(実行速度が遅すぎる)場合は、 処理時間計測を行い処理時間を要している箇所を探しだし、アルゴリズムやデータ構造の変更などのパフォーマンス・チューニングを行う必要がある。 予備調査として、色々なアルゴリズム・データ構造を採用した場合の処理時間計測を行い、 どれが最適か、どのような性質があるかを知ることも重要である。 稿では、上記のような目的のためにプログラムの処理時間を計測する方法について説明する。 場合によっては、ストップウォッチを片手にプログラムを実行し、処理時間を計測することもあるかもしれないが、 精度が1

  • C++ 動的配列クラス std::vector 入門

    動的配列クラス std::vector とは std::vector とは C++ で標準に使用できるとっても便利な動的配列クラスでござるぞ。 通常配列と同じように [] 演算子で値を参照・代入することはもちろん、サイズ情報等の取得やデータの挿入削除なども可能だ。 「動的配列」とは配列サイズを自由に増減できるという意味。「可変長配列」と呼ばれることもある。 通常の配列は非常に便利で使用頻度の高いデータ構造だが、サイズを予め指定する必要があり、実行時に動的にサイズを変更することが出来ない。 例えば、「int data[100]; 」と宣言した場合、実行時にデータ数が100を超えるとお手上げだ。 スネークゲームでは、ヘビの胴体の長さがどんどん長くなるので、 胴体座標を動的配列で実装している。 これを普通の配列で実装すると、胴体の最大長を保持する可能性があるので、78*21=1638 のサイズの

    C++ 動的配列クラス std::vector 入門
  • ViVi web site

    Godot Engine さくさく理解する Godot 4.x 入門(ただし2Dに限る) さくさく理解する Godot 3.x 入門(ただし2Dに限る) Godot アプリ ダブルス組合せ表生成 Sumdoku 6 for win ver 0.4.120 apk 五目並べ ver 0.006 0006.zip apk 超三目並べ apk Vithello(6x6 オセロ Othello) さくさく ホールデム さくさく サムナンプレ6(キラー数独 キラーナンプレ Killer Sudoku Sumdoku) apk さくさくナンプレ(数独 Sudoku NumberPlace) apk さくさくロジック15(15x15 イラストロジック・お絵かきロジック・ピクロス) レトロシューティング:GodotShooting さくさくロジック20(20x20 イラストロジック・お絵かきロジック・ピク

  • C言語/C++ プログラミング 入門

    C 言語は 1972年にUSの有名なベル研究所で Dennis Ritchie らが設計・実装した言語だ。 今となっては低水準な言語だが、充分な機能、簡潔な記法とアセンブラに近いパフォーマンスを持ち、 Unix, Windows, Linux 等の OS をはじめ、コンパイラ、テキストエディタ等のツールや、ビジネスアプリやゲームなど多くの各種アプリケーション開発に用いられてきた。 C++ 言語は 1980年頃、やはりベル研究所の Bjarne Stroustrup が開発したもので、C にオブジェクト指向などの機能を追加したものだ。 C との互換性を維持しつつオブジェクト指向が可能で、パフォーマンスも高かったことから、 1990年頃から、ビジネスアプリやゲームなど多くのアプリケーション開発に使用されるようになった。 C++ は、過去の互換性を維持しつつ最先端のプログラミングパラダイムを多く

  • 1