私はコードを最小限に抑え、同じエラーを再現してコンパイルします。私はそれが警告を出すことを知っている、あなたはそれらを言及する必要はありません。私はコーディングに新しいので、助けに感謝します。 問題は、ベクトルXposとYposがmain()のforループの完了ごとに同じ値を返すということです。私はrnadom出力を取得していますが、すべてのベクトル値が繰り返されます。彼らは違うはずです。何が間違っているのかを教えてもらえますか?どうもありがとうございます。コード:ランダムはforループで同じ値を返します
#include "stdafx.h"
#include <ctime>
#include <cmath>
#include <random>
#include <iostream>
using namespace std;
//error is here?
int phaseTwoSimulate(double &Xpos, double &Ypos, int diameter, double stepSize) {
while (pow(Xpos - 201, 2) + pow(Ypos - 201, 2) < pow(diameter, 2)) {
// while inside cicle
int direction = rand() % 4;
switch (direction) {
case 0://north
Ypos = Ypos - stepSize;
break;
case 1://east
Xpos = Xpos + stepSize;
break;
case 2://south
Ypos = Ypos + stepSize;
break;
case 3://west
Xpos = Xpos - stepSize;
break;
}
}
return 0;
}
int main()
{
double Xpos = 201;
double Ypos = 201;
srand(time(NULL));
for (int x = 0; x < 50; x++) {
phaseTwoSimulate(Xpos,Ypos,50,1);
cout << Xpos << "," << Ypos << endl;
double Xpos = 201;
double Ypos = 201;
}
cin.ignore();
cin.get();
return 0;
}
は、[投稿してくださいすることがMCVE]。 –
それは私がやったことです!私はそれをする方法について何かを理解していませんか? –
これは[mcve]ではありません。問題を再現するために最小限に抑えてください。そして、いいえ、要求されない限り、ここでプログラムのコード全体を投稿する必要はありません。 –