以下是用 C++ 解决该问题的示例代码:\n\ncpp\n#include <iostream>\n#include <queue>\n#include <sstream>\n\nusing namespace std;\n\nqueue<string> playerQueue;\n\nvoid start() {\n if(playerQueue.empty()) {\n cout << "Error" << endl;\n } else {\n if(playerQueue.size() == 1) {\n cout << playerQueue.front() << endl;\n } else {\n cout << playerQueue.front() << " " << playerQueue.back() << endl;\n }\n while(playerQueue.size() > 2) {\n playerQueue.push(playerQueue.front());\n playerQueue.pop();\n }\n }\n}\n\nvoid arrive(string name) {\n if(playerQueue.size() >= 2) {\n cout << "Error" << endl;\n } else {\n playerQueue.push(name);\n cout << "OK" << endl;\n }\n}\n\nvoid leave(string name) {\n if(playerQueue.empty() || playerQueue.front() != name) {\n cout << "Error" << endl;\n } else {\n playerQueue.pop();\n cout << "OK" << endl;\n }\n}\n\nint main() {\n string input;\n while(getline(cin, input)) {\n stringstream ss(input);\n string command, name;\n ss >> command;\n if(command == "start") {\n start();\n } else if(command == "arrive") {\n ss >> name;\n arrive(name);\n } else if(command == "leave") {\n ss >> name;\n leave(name);\n }\n }\n return 0;\n}\n\n\n使用 queue 数据结构来维护玩家队列。start 函数按照题目要求输出当前上场的人,并将上一局的参与者按原本的顺序回到队尾。arrive 函数将新到达的人加入队尾。leave 函数将离开的人从队列中移除。\n\n主函数使用 getline 函数来逐行读入输入,并使用 stringstream 进行解析。根据命令调用相应的函数进行处理。

C++ 实现游戏机排队系统:模拟玩家入队、离队和游戏开始

原文地址: https://www.cveoy.top/t/topic/qinC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录