今天我在大学里第一次考c++——我学的是计算机科学——我没考好,因为时间太短了,我不得不写一些很长的代码来完成简单的任务。所以这是一个有各种不同方法的纸牌游戏模拟。
第一个问题:我们应该比较每个玩家卡片的点值以确定最高点,这些点值都存储在一个玩家类对象中作为向量类数据元素。我所做的是:获取卡,将值存储在 int 中,然后像这样比较:
if(a > b && a > c && a > d){...
...我不得不这样做四次。有一个更好的方法吗 ?如果没有,也许是比较整数的更简单方法?
第二个问题:如果你看这个你可能会知道问题是什么
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
不支持该[]
运算符,即使它在其他方法中也有效。