This commit is contained in:
a25liang
2024-07-12 16:41:25 -04:00
parent de22f4c1aa
commit e7865b0c57

View File

@ -3,40 +3,40 @@
#include <string> #include <string>
console_input::console_input(std::istream &cin): console_input::console_input(std::istream &cin):
in{cin} {} in{cin} {}
game_command console_input::get_command() { game_command console_input::get_command() {
std::string cmd; std::string cmd;
in >> cmd;
game_command tmp;
if (in.eof())
return game_command_terminate;
if (cmd == "q")
return game_command_terminate;
else if (cmd == "f")
return the_world;
else if (cmd == "r")
return game_restart;
else if (cmd == "u" || cmd == "a") {
bool use = cmd == "u";
in >> cmd; in >> cmd;
game_command tmp;
if (in.eof()) if (in.eof())
return game_command_terminate; return game_command_panic;
if (cmd == "q") return (game_command)((tmp = get_direction(cmd)) ==
return game_command_terminate; game_command_panic
else if (cmd == "f") ? tmp : tmp - move_north +
return the_world; (use ? apply_north : attack_north));
else if (cmd == "r") } else {
return game_restart; auto tmp = get_direction(cmd);
else if (cmd == "u" || cmd == "a") {
bool use = cmd == "u";
in >> cmd; if (tmp != game_command_panic)
return tmp;
}
if (in.eof()) return game_command_pass;
return game_command_panic;
return (game_command)((tmp = get_direction(cmd)) ==
game_command_panic
? tmp : tmp - move_north +
(use ? apply_north : attack_north));
} else {
auto tmp = get_direction(cmd);
if (tmp != game_command_panic)
return tmp;
}
return game_command_pass;
} }