fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void print_prompt(const vector<vector<char>> & m, int x, int y) {
  6. std::cout << "You're currently at (" << x << ", " << y <<") = " << m[y][x] << std::endl;
  7. std::cout << "Enter a direction to travel (N, S, E, W):" << std::endl;
  8. }
  9.  
  10. int main() {
  11. vector<vector<char>> matrix = {{'A', 'B', 'C', 'D'},
  12. {'E', 'F', 'G', 'H'},
  13. {'I', 'J', 'K', 'L'},
  14. {'M', 'N', 'O', 'P'}};
  15. int x = 2, y = 2;
  16. char dir;
  17.  
  18. print_prompt(matrix, x, y);
  19. while(std::cin >> dir)
  20. {
  21. switch(dir) {
  22. case 'N':
  23. case 'n':
  24. y = (y - 1) % matrix.size();
  25. break;
  26. case 'S':
  27. case 's':
  28. y = (y + 1) % matrix.size();
  29. break;
  30. case 'E':
  31. case 'e':
  32. x = (x + 1) % matrix[y].size();
  33. break;
  34. case 'W':
  35. case 'w':
  36. x = (x - 1) % matrix[y].size();
  37. break;
  38. }
  39. print_prompt(matrix, x, y);
  40. }
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 15240KB
stdin
N
S
N
N
E
E
W
stdout
You're currently at (2, 2) = K
Enter a direction to travel (N, S, E, W):
You're currently at (2, 1) = G
Enter a direction to travel (N, S, E, W):
You're currently at (2, 2) = K
Enter a direction to travel (N, S, E, W):
You're currently at (2, 1) = G
Enter a direction to travel (N, S, E, W):
You're currently at (2, 0) = C
Enter a direction to travel (N, S, E, W):
You're currently at (3, 0) = D
Enter a direction to travel (N, S, E, W):
You're currently at (0, 0) = A
Enter a direction to travel (N, S, E, W):
You're currently at (3, 0) = D
Enter a direction to travel (N, S, E, W):