#include <iostream>
#include <string>
int main( )
{
std:: string input;
while ( std:: cin .good ( ) ) {
std:: cout << "Direction? (n/s/e/w/q): " ;
std:: getline ( std:: cin , input) ;
// if input is empty, input[0] would be undefined behavior.
if ( input.empty ( ) )
continue ;
switch ( input[ 0 ] ) // check the first character only
{
case 'n' :
std:: cout << "You have entered a dark room.\n " ;
break ; // escape the switch, not the loop.
case 'e' :
case 's' : // no break, 'e' falls thru
case 'w' : // still no break, 'e' and 's' fall thru
std:: cout << "You can't go that way.\n " ;
break ;
case 'q' :
std:: cout << "bye!\n " ;
return 0 ;
break ;
default :
std:: cout << "I asked you to type n, s, e, w or q, but you typed " << input << ".\n " ;
break ;
}
}
return 0 ;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxzdHJpbmc+CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIHN0ZDo6c3RyaW5nIGlucHV0OwoKICAgICAgICB3aGlsZSAoc3RkOjpjaW4uZ29vZCgpKSB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiRGlyZWN0aW9uPyAobi9zL2Uvdy9xKTogIjsKICAgICAgICAgICAgc3RkOjpnZXRsaW5lKHN0ZDo6Y2luLCBpbnB1dCk7CgogICAgICAgICAgICAvLyBpZiBpbnB1dCBpcyBlbXB0eSwgaW5wdXRbMF0gd291bGQgYmUgdW5kZWZpbmVkIGJlaGF2aW9yLgogICAgICAgICAgICBpZiAoaW5wdXQuZW1wdHkoKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgc3dpdGNoIChpbnB1dFswXSkgLy8gY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3RlciBvbmx5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNhc2UgJ24nOiAKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIllvdSBoYXZlIGVudGVyZWQgYSBkYXJrIHJvb20uXG4iOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBlc2NhcGUgdGhlIHN3aXRjaCwgbm90IHRoZSBsb29wLgoKICAgICAgICAgICAgICAgIGNhc2UgJ2UnOgogICAgICAgICAgICAgICAgY2FzZSAncyc6IC8vIG5vIGJyZWFrLCAnZScgZmFsbHMgdGhydQogICAgICAgICAgICAgICAgY2FzZSAndyc6IC8vIHN0aWxsIG5vIGJyZWFrLCAnZScgYW5kICdzJyBmYWxsIHRocnUKICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIllvdSBjYW4ndCBnbyB0aGF0IHdheS5cbiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAncSc6CiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJieWUhXG4iOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJJIGFza2VkIHlvdSB0byB0eXBlIG4sIHMsIGUsIHcgb3IgcSwgYnV0IHlvdSB0eXBlZCAiIDw8IGlucHV0IDw8ICIuXG4iOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gMDsKICAgIH0KCg==