C

printf...print data with format scanf...scan data with format \n...new line scanfは入力された文字(Enterキー)をその場では受け取らない。 scanf("%s",name); scanf("%*c%c", ch); //代入抑止の*を加える コンソールの消去 #include <stdlib.h> system("cls"); //</stdlib.h>…

Win32 Part3 プロセス、スレッド編

ヒープはプロセス一個につき、最初から一個用意されている HeapAlloc、VirtualAllocの違いについては、 http://keicode.com/windows/win11.php が詳しい。 VirtualAllocはページ単位でメモリを操作する。(どっさと領域を調達してくる) たくさんメモリを使…

コピーコンストラクタ

//AutoPtr.h #include <cstring> #include <iostream> class AutoPtr { private: char *ptr; public: AutoPtr(); ~AutoPtr(); char *operator=(char *ptr); operator char* (); char& operator[](int index); //深いコピー AutoPtr(AutoPtr& src); AutoPtr& operator=(AutoPtr& </iostream></cstring>…

クラスメモ4-2

//Map.h #ifndef INCLUDED_PLAYER_H__ #define INCLUDED_PLAYER_H__ #include <utility> using namespace std; class Image; class Map; //Playerはいつでも一人なので、シングルトンにする。 class Player { public: static Player* instance(); void draw() const; </utility>…

クラスメモ4-1

クラスを新しく組むときは、まず、コンストラクタ、デストラクタ、もっとも関係しそうなメンバ変数から先に与えていく。 組んだら、テストして動作するか確かめる。(特に,デストラクタのdelete忘れに気を配る.) で、もう一段複雑にする(関数を入れたり、…

クラスメモPart3-3

Mapのstructをclassに替えたもの。 Array2D<Object> mStageData; の配列がsetSizeで動的に生成されるが、この時もコンストラクタは呼ばれている。Objectクラスのコンストラクタは mFlagを0に初期化するようにしたので、邪魔くさいZeroClearは呼び出す必要がなくなっ</object>…

クラスメモPart3-2

//Map.cpp #include "Map.h" #include "File.h" #include "GameLib/Framework.h" //coutも using namespace GameLib; namespace { //Mapコンストラクタ用 unsigned GetMapSize(const char* stageData) { int x=0; int y=0; int tmp =0; for(int i=0; stageDa…

クラスメモPart5

Mapを作る経過ではまったことをメモ。 まず、.txtをbinaryモードで読み込むと、 \r\nが残る。 これは、char型の \r : 10 \n : 13 にあたる。 あとは、Mapではrow,colではわかりにくいので、x,yとか、height,widthであらわすが、その時、 二次元配列上の”たて…

クラスメモPart3-1

今回はRPG風のゲームを簡単ながら作りたいかな、と考えているので、次はMapで。 とりあえず、典型的なやつを一回作りたいので、行き当たりばったりでやってみる。マップを作るので、マップチップの性質を列挙型に定義する。 #include "Array2D.h" //宣言だけ…

クラスメモPart2

本に沿って、Fileクラスも自分で作る。 //File.h class File { public: File(const char* filename); ~File(); int getSize() const; //constメンバ関数はなるべくつける。 unsigned getUnsigned() const; const char* getData() const; private: int mSize;…

クラスメモPart1-2

Part1をテンプレートで書いてみる。 #ifndef INCLUDED_ARRAY2D_H__ #define INCLUDED_ARRAY2D_H__ template <typename TYPE> class Array2D { public: Array2D(int i,int j); ~Array2D(); void Show(); //表示させる関数 TYPE& operator()(int i, int j); //参照つけないと</typename>…

c++ における"&"について

参照& ポインタがメモリ上に実体をもったひとつの変数であるのに対し、 参照はあくまで変数の別名であり、メモリ上に実体がない点が異なります。 int a = 5; int b = 10; int& Ref = a; //必ず初期化する必要がある。参照先は配列型であってはならない。 Ref…

クラスメモPart1

ゲームプログラマになる前に覚えておきたい技術をやっているが、自分の力不足を認識したので、第一部から第2部に移るときに なんかいろいろ作ったほうがいいだろうと思い、メモ。この本のライブラリを使用。 まず、動的に生成される二次元配列クラスを作る…

ポカ集 c++

名前を付けるのになぜか数字から始まる名前にする。

c,c++におけるポインタについて

C++

まだ加筆予定 目標は char (*p)[5]を完全に理解するぐらいまでにはポインタを理解すること。 ポインタと配列の違いは一言でいうならば、書き換えができるか否かである。 ポインタと配列の混乱の元 1:配列名aを読み込む場合、aは&a[0]と解釈される。 2:ポイン…

win32 part2 描画編

C++

赤い色の直線を描く赤のペンを作成 赤のペンをデバイスコンテキストにせんたくする 現在位置を直線の視点にセットする 終点まで直線を描く デバイスコンテキストからの赤のペンを選択削除する 赤のペンを削除する WM_PAINTメッセージではBeginPaintで。(更新…

例のやつ

//ch1gam.cpp #include <iostream> #include <cstdio> #include "Object.h" using namespace std; /* 0000 .po# の順に */ int main() { Stage stage1(5,8); char s1map[5][8] = { {1,1,1,1,1,1,1,1}, {1,0,8,8,0,4,0,1}, {1,0,2,2,0,0,0,1}, {1,0,0,0,0,0,0,1}, {1,1,1,1,1,1,</cstdio></iostream>…

c++

C++

コンストラクタ mallocもnewも必要なメモリ領域をヒープからもらってくるが、mallocには、コンストラクタを呼び出す機能はない。 mallocは仮想関数テーブル迄もを初期化させる。 コピーコンストラクタ: まず、代入と、初期化との区別ができているかどうか?…

win32

//説明 //アプリケーション(.exe)実行でまず、呼び出される //2 int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) /* HINSTANCE hInst:実行中のアプリケーションを識別するための整数値を受け取るもの。(もっと…

最近、絵を描くのにはまっているので。人体のデッサン技法作者: ジャック・ハム,島田照代出版社/メーカー: 嶋田出版発売日: 1987/07/01メディア: 単行本購入: 55人 クリック: 209回この商品を含むブログ (23件) を見るやさしい人物画はpdf公開されているので…

drawing on the right side of the brain 道具

おもしろくていい本なんだけど、 道具揃えんのがめんどいええい、ままよ。 紙:画用紙が一番いいが、普通の紙でも全く問題ない。 ペン:黒に塗りつぶすのに、4Bの"Graphite stick"がいるらしいが、4Bの鉛筆で問題ないだろう。(ぬりつぶすだけなので。)Grap…

今日得たこと

pining for the fjordsUsed to describe a dead person or animal as a way of convincing somebody that the corpse is not, in fact, dead. example: Moore's Law is not dead. It's merely pining for the fjords.

院試に関するメモ

結局、情報理工うけた。共通::難化(総評)共通の問題は明らかに去年の問題よりも難化していた。特に第一問の線形台数は(1)しか解けなかった人続出したかもしれないような問題だった。問題が複雑に見えるので、第一問で早速心折れてひよってしまい調子が狂…

common lispにおけるスコープの考察

(setf x 'outside) ;=>outside ;letはparallelに値を束縛する. (let ((x 'inside) (y x)) ;x => outside (list x y)) ;=>(inside outside) ;let*は逐次値を束縛する. (let* ((x 'inside) (y x)) ;x => inside (list x y)) ;=>(inside inside) (list y) ;=>…

fortran

関数によって本体の変数が書き換わっていることに注意. COMMON A(10) DO 10 J=1,10 A(J) = FLOAT(J) 10 CONTINUE DO 50 K=1,10 X=A(10) Y= FS1(K,X) WRITE(*,*) 'K=', K,' X =', X, ' Y=', Y 50 CONTINUE STOP END C SUBROUTINE KEISAN1(K,X) C COMMON A(10…

lispの再帰関数,関数作成の練習

;リスト→最後の要素を取除いたリストを返す. (defun butlast$ (lst) (reverse (cdr (reverse lst))) ) ;階乗計算 ;1つめの方法 (defun factorial (x) (if (<= x 1) x (* x (factorial (- x 1))) )) ;2つめの方法 (defun factorial2 (n) (fac-loop 1 n 1)) …

lispの練習

Lispはデータもリスト処理も区別せず,全く同じルールで計算する.QUOTEのやくわり 'apple はフォームだが,これをひょうかするとappleというデータとなる.関数の引数はデータ型であると分かって初めてその関数を適用できる. (+ a x) (list '(1 2)) ;与え…

リスニングの弱点

多い間違い are を aに間違える 逆も然り t --> l p --> b とかの変化。 アクセントの位置を把握し切れていないので、違う意味の単語と捉えてしまう. e.g)metropolis 助動詞、冠詞等の聞き間違い to -->~~t for --> from on --> an on the --> and the and …

リスニングの弱点

多い間違い are を aに間違える 逆も然り t --> l p --> b とかの変化。 ある語句が'a'で始まっていれば、その直前の語句とリエゾンする可能性が高い students applied from our department to this company //student/sapplied... アクセントの位置を把握し…