今日、大学で初めて C++ の試験を受けました。コンピュータ サイエンスを勉強していますが、時間が短すぎて、簡単なタスクを実行するために長いコードを書かなければならなかったため、うまくいきませんでした。というわけで、ありとあらゆる手法を使ったカードゲームシミュレーションでした。
最初の問題: 各プレイヤーのカードのポイント値を比較して、最も高い値を決定する必要があります。これらはすべて、ベクトル クラス データ要素としてプレイヤー クラス オブジェクトに格納されます。私がしたことは、カードを取得し、値をintに保存してから、次のようにすべてを比較することでした:
if(a > b && a > c && a > d){...
...そして、これを4回行わなければなりませんでした。これを行うより良い方法はありますか?そうでない場合、整数を比較する簡単な方法はありますか?
2番目の問題:これを見れば、おそらく何が問題なのかがわかります
int id0 = players[0].getID();
int bd0 = players[0].getBudget();
int id1 = players[1].getID();
int bd1 = players[1].getBudget();
int id2 = players[2].getID();
int bd2 = players[2].getBudget();
int id3 = players[3].getID();
int bd3 = players[3].getBudget();
stringstream players;
players << "Player's ID" << setw(10) << "Budget" << endl;
players << "-----------" << setw(10) << "------" << endl;
players << id0 << setw(20) << bd0 << endl;
players << id1 << setw(20) << bd1 << endl;
players << id2 << setw(20) << bd2 << endl;
players << id3 << setw(20) << bd3 << endl;
return players.str();
上記の関数が文字列ストリームで直接機能しなかった理由がわかりません! コンパイラは、他の方法で機能したにもかかわらずsstream
、演算子をサポートしていないと私に言い続けました。[]