私は今、約3週間プログラミングしています。私はこのcivゲームを作っています。唯一の問題は、各ラウンド中に、各ラウンドが毎回更新されたが、2ラウンド後に更新されないということです。基本的に私がプログラムにしたいのは、各ラウンド後に各リソースを集計し、人口と金を計算することですが、最初のラウンド後には起こっていません。私は授業を受けたことがないので、最初に正しいことを期待しないでください。彼らは問題がある場合を除き、変数アップトップのためのC++変数がWhileループで更新されない
int RoundTotal(int yg, int yk, int yf, int ys, int yr, int yfi,
int co, int rtp, int gtp, int ap, double tr, int yp, int dp,
int int yd, double fp) {
int YourGold = yg, YourStrength = ys, YourKnow = yk, YourFood = yf,
YourResource = yr, YourFields = yfi, YourPopulation = yp, YourDefense = yd;
int ResourceTradeProfit = rtp, GoldTradeProfit = gtp, DroughtProduction = dp;
int totals, count = co, ArcherPay = ap;
double taxrate = tr, FoodProduction = fp;
if (YourStrength<0) {
YourStrength = 0;
}
FoodProduction = (0.5*YourFields + 0.5*YourKnow - 0.02*YourPopulation)*DroughtProduction;
YourFood = YourFood + FoodProduction;
YourGold = YourGold + (taxrate/100)*YourPopulation;
YourGold -= (YourStrength/2);
YourGold -= YourKnow;
YourGold -= YourFood;
YourGold -= ArcherPay;
YourResource += ResourceTradeProfit;
YourGold += GoldTradeProfit;
YourPopulation = YourPopulation + YourFood*FoodProduction;
return totals, YourGold, YourKnow, YourFood, YourStrength,
YourResource, YourFields, count, ResourceTradeProfit,
GoldTradeProfit, ArcherPay, taxrate, YourPopulation,
DroughtProduction, FoodProduction;
無視略語のすべて:ここ
は、関数の内部で各ラウンドを起こるはずの更新のためのコードです。
は、あなたがリターンを行うに何を期待していますか? – tkausl
あなたの関数は単一の 'int'を返すだけです。この関数の呼び出し側では、単一の値しか得られません。設計面からは、このデータをすべて保持するクラスを作成して、単にクラスを返すか、そのクラスに更新メソッドを追加するなどしてください。 – pstrjds
あなたは[comma operator](http://en.cppreference.com/w/cpp/language/operator_other)とこのSO post [here](https://stackoverflow.com/q/54142/)について読むべきでしょう。 416574) – pstrjds