ゲームオーバーのプログラム

このQ&Aのポイント
  • 現在Visual C++ 2005で3Dシミュレーションを作製する勉強をしていますが、ド素人のため苦戦しております。ぜひとも、ご教授ください。
  • while文で繰り返し判定を行い、条件が偽となった場合にシミュレートを中止しゲームオーバーになるようにしたいのですが・・・どのようにプログラムすればよいのでしょうか?例えば(意味はありませんが、簡単のため)以下のように1~100までの総和を求めるプログラムで100になったら『ゲームオーバー』と画面に表示したい場合は、どうすればよいでしょうか? #include<iostream> using namespace std; int main(void){ int i, total, s; i = 1; total = 0; while( i <= 100){ total += i; i++; } return 0; }
  • 面倒かとは思いますが、よろしくお願いします。
回答を見る
  • ベストアンサー

ゲームオーバーのプログラム

現在Visual C++ 2005で3Dシミュレーションを作製する勉強をしていますが、 ド素人のため苦戦しております。ぜひとも、ご教授ください。 while文で繰り返し判定を行い、条件が偽となった場合にシミュレートを中止し ゲームオーバーになるようにしたいのですが・・・どのようにプログラムすればよいのでしょうか? 例えば(意味はありませんが、簡単のため)以下のように1~100までの総和を求めるプログラムで100になったら 『ゲームオーバー』と画面に表示したい場合は、どうすればよいでしょうか? #include<iostream> using namespace std; int main(void){ int i, total, s; i = 1; total = 0; while( i <= 100){ total += i; i++; } return 0; } 面倒かとは思いますが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#118694
noname#118694
回答No.1

ループの終りに来る度にゲームオーバーの判定をしてやればいいと思います。 上の例に書き足すならば、 while(i<=100){ total+=i; if(i==100) cout<<"ゲームオーバー"<<endl; i++; } という感じでしょうか。 ゲームなんかだと普通は、 while(true){ total+=i; if(i>=100){ cout<<"ゲームオーバー"<<endl; break; } i++; } というように、無限ループにしておいて、ゲームオーバーになったらループを抜けるようにすることが多いです。

topopot
質問者

お礼

なるほど…break文を使うんですね。 大変参考になりました! まだまだ苦戦しそうですが、宜しくお願いします。

関連するQ&A

  • 配列のプログラムですが

    #include <iostream> using namespace std; int main() { int a[100],b=-9999; int i=0,j; do { cout << "整数値を入力してください\n"; cin >> a[i]; b += a[i]; i++; }while( a[i-1] != 9999); cout << b << '\n'; for(j=0;j<i-1;j=j+1) cout << a[j] * 3 << '\n'; return 0; } このプログラムってどんな計算をしてるんですか?誰か分かる人いますか 整数値を入れてくださいって出るだけなんですが

  • C++プログラム問題(初心者です)

    C++の勉強初めて1ヶ月ぐらいです。 以下にある問題がわかりません。 解説付きでお願いします。 [問題] 関数 funcのみを修正することで、標準出力に 2 が表示する。 [プログラム] #include <iostream> using namespace std; int func(int i) {return i;} int main() { int i = 1; cout << ++func(i) << "\n"; return 0; }

  • C++で二分法のプログラム

    C++で二分法のプログラムを作るんですが x1-x2が十分小さくなれば(10^-5)終了する 例 cos(x/2)の解を出す これどうやればいいんですか?whileを使うらしいですが。 文法というのは、 if系、while、switch、continue、for、break文くらいしかやってないんですが #include <iostream> #include <cmath> using namespace std; int main() { までは行きますが… 出力はcout 入力はcinでお願いできないでしょうか

  • 入力に出現する数字文字をカウントするプログラム

    こんにちは、毎度お世話になります。 #include<iostream> using namespace std; int main(void){ char c; int cnt[10] = {0}; while(cin.get(c)){ if(c >= '0' && c <= '9') cnt[c - '0']++; } for (int = 0; i < 10; i++) cout << i << "の出現回数:" << cnt[i] << '\n'; return(0); } [/code] ここで質問なんですが、このプログラムの中で数字文字をカウントしているのはどこでしょうか? そして while(cin.get(c)){ if(c >= '0' && c <= '9') cnt[c - '0']++; } ここの部分が何を表しているのか解りません。 よろしくお願いします。

  • 点数の最高得点を知るプログラム

    #include<iostream> using namespace std;  int main() {  int i;  int box[5]; cout << "テストの点数を入力してください。\n"; for (int i = 0; i < 5; i++) { cin >> box[i]; } return 0; } for文で 点数を入力まで行ったのですが、 関数で配列を使って入力した最大値を調べるプログラムの練習問題なんですが、 何回もエラー出てしまいよく解っていません。 関数からポインタまで配列でどうつかうかがよく解ってないんだと思います。 良かったら教えてください、お願いします。

  • C++で分からないプログラムがあるんですが

    ベクトルの加減を行うプログラムを作成せよ。 ベクトルの内積を求めるプログラムを作成せよ。 ↑作るプログラムは1つにする(1つにまとめる) 2つのベクトルを適当に初期化して行う事 これ、だれか教えてくれませんか?配列とforを使うんですが、配列も、1次元と2次元しかやってないですし。 こんな感じのレベルだと思うんですが… #include <iostream> using namespace std; int main() { float w[] = {1.2,2.3,3.4,4.5,5.6}; float x[] = {4.8,2.6,1.3,9.1,8.7}; float u = 0.0; int i; for(i=0;i<5;i=i++) { u += w[i] * x[i]; } cout << "u=" << u << "です\n"; return 0; } 本当に誰か助けてください。

  • 関数呼び出しについて

    今cygwin 上でC++の勉強をしているのですが 以下の2つのプログラムの違いがよくわかりません どなたかよろしくお願いします <プログラム1> #include<iostream> using namespace std; int a(); int main(){ cout << abs();  return 0;} int a(){ cout << "test\n";  return 1;} <プログラム2> #include<iostream> using namespace std; int a(int i); int main(){ cout << a(1);  return 0;} int a(int i){ cout << "test\n";  return i;} プログラム1では関数a()内の"test"が出力されるのですが プログラム2ではa(int i)内の"test"は出力されません。 この違いはどこにあるのでしょうか? 同じプログラムでint a() と int a(int i)を double a() と double a(double d)にすると この違いは生じません。なぜaの戻り値をint に設定したときだけ この違いが生じるのでしょうか?

  • プログラムの動作

    10文字をスキップするプログラムなのですが、どのようにスキップしているのかわからないので教えてください。 下にソースコードを書きます。 #include <iostream> using namespace std; //10文字をスキップする istream &skipchar(istream &stream) { int i; char c; for(i=0; i<10; i++)stream >> c; return stream; } int main() { char str[80]; cout << "いくつかの文字を入力する:"; cin >> skipchar >> str; cout << str << endl; return 0; } よろしくおねがいします。

  • c++ 整数値の各桁を足し合わせるプログラム

    上記の通りの質問です #include <iostream> using namespace std; int main () { int x; int sum = 0; cout << "正の整数値の各桁を足す。\n " ; do{ cout << "正の整数値:"; cin >> x; }while (x <= 0); cout << "足すと"; while (x > 0){ cout << sum += x % 10; x /= 10; return sum; } cout << "です。\n " ; } とまでは書けましたがうまくいきません。 初心者なので簡単かもしれませんがお願いします。

  • なんで繰り返すの?すいません急です汗

    macでソースプログラムを作っています。 #include <iostream> using namespace std; main(){ int i = 1 ; while (i < 1000) { cout << i ; if (i % 2 == 0){ cout << "go\n" ; } else { cout << "\n"; } i++; } } これだとなぜか1000までの数字が 1 2go 3 4go 5 6go と繰り返しででてきてしまいます。 本当は好きな数字を入力する状況になるようにして例えば「2」を入力したら 2go とだけ表示したいんです。 どこがまちがってるのでしょうか?

専門家に質問してみよう