今日から必死で1から全て学んでゲーム作成します
■ このスレッドは過去ログ倉庫に格納されています
0001松田 ◆cobo4pcvHY
03/02/06 21:28ID:+Sp/g0d7言語の難しさから逃げていては駄目だ!お前はゲームを作りたいのだろ!?
という悟りを開き、今日からプログラム言語を覚え、そして
プログラムツールで作ります!今持ってるものは・・・。
6才年下の弟の持ってる技術(厨2)の教科書。
アクティブベーシック。(vectorより入手)
・・・作れるのだろうか!?もちろん古本屋で買いあさってくるが
(作れ次第、いずれうpします・・・。いつまでかか(ry))
0833名前は開発中のものです。
03/08/19 22:41ID:Qq+BHjHC0834名前は開発中のものです。
03/08/19 22:46ID:d9fQejakscanfの返り値について調べてみるなんてどうよ。
0835521
03/08/20 06:53ID:9SL4zmeG…申し訳ありません。
未熟故、もう少し具体的にヒント頂けませんでしょうか。
scanf()は代入された入力項目の数を返すんですよね…
ん。わからないです…そもそも戻り値について調べるってどうやって…
もう一回同じ入門書読んで出直してきますです。
0836833
03/08/20 12:21ID:TWQmsxwQごめんな、プロバイダがアクセス規制されちゃってて携帯からしか書き込めないのよ。
この場合、scanfが1以外を返してきたら入力は間違ってるってことね。その場合は入力ストリームstdinをクリアしてやればいい。
0837名前は開発中のものです。
03/08/20 13:54ID:wW23h0o7#include<conio.h>
class keisan
{
int a;
int b;
int ans;
public:
void input();
void tasu();
void hiku();
};
void keisan::input()
{
cout<<"a = ";
cin>>a;
cout<<"b = ";
cin>>b;
}
void keisan::tasu()
{
ans = a + b;
cout<<"a + b = "<<ans<<endl;
}
0838名前は開発中のものです。
03/08/20 13:55ID:wW23h0o7void keisan::hiku()
{
ans = a - b;
cout<<"a - b = "<<ans<<endl;
}
int main(void)
{
keisan cla;
cla.input();
cla.tasu();
cla.hiku();
getch();
return 0;
}
こんな感じにクラスって奴を使うんですか?
あと、オブジェクト指向になってますか?
0839名前は開発中のものです。
03/08/21 00:49ID:2IFCdjlOとりあえず、クラスの設計で気がついた点を並べてみる。
・コンストラクタが無い
このせいで、メンバ変数a,b,ansの初期値が不定になる。
例えば、Keisan::input()を行わずにkeisan::tasu()やkeisan::hiku()を実行
すると、謎の数字が表示されてしまう。
・デストラクタが無い
現状では無くても構わない。が、個人的には常に書くほうが良いと思う。
・cin、coutはクラスの外に出したほうが良い
一概にはいえないが、「計算」と「出力」のような異なる処理は分離したほ
うが柔軟なクラスになる。
・メンバ変数ansは必要ない
cout << "a + b = " << ( a + b) << endl;
cout << "a - b = " << ( a - b) << endl;
で十分だろうと。でもこれは、上の三つほどは重要じゃないな。
0840名前は開発中のものです。
03/08/21 01:38ID:2IFCdjlOchar s[ 256];
scanf("%s", s);
のように文字列で受け取って、strtol()関数などで数値に変換。
ところで、「特定のキーのみを受け付ける」のは、C/C++の標準関数では
無理なので、プラットフォーム固有の機能を使わなければならない。
windowsな人は、DirectXにたよっちゃうのが楽だと思う。
■ このスレッドは過去ログ倉庫に格納されています