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>
console_input::console_input(std::istream &cin):
in{cin} {}
in{cin} {}
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;
game_command tmp;
if (in.eof())
return game_command_terminate;
return game_command_panic;
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";
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);
in >> cmd;
if (tmp != game_command_panic)
return tmp;
}
if (in.eof())
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;
return game_command_pass;
}