wheelsmanx

AOC DAY 2 PART 2 Source.cpp

May 15th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. #include "Header.h"
  2. // this header file is the same cleanUp.h
  3. #include <vector>
  4. #include <string>
  5. #include <iostream>
  6.  
  7. using namespace std;
  8. vector <string> codeTranslate(vector <int> input) {
  9. vector <string> returnObject;
  10. int tempInt;
  11. for (int i = 0; i < input.size(); i++) {
  12. tempInt = input.at(i);
  13. switch (tempInt) {
  14. case '3': {returnObject.push_back("1"); break; }
  15. case '7': {returnObject.push_back("2"); break; }
  16. case '8': {returnObject.push_back("3"); break; }
  17. case '9': {returnObject.push_back("4"); break; }
  18. case '11': {returnObject.push_back("5"); break; }
  19. case '12': {returnObject.push_back("6"); break; }
  20. case '13': {returnObject.push_back("7"); break; }
  21. case '14': {returnObject.push_back("8"); break; }
  22. case '15': {returnObject.push_back("9"); break; }
  23. case '17': {returnObject.push_back("A"); break; }
  24. case '18': {returnObject.push_back("B"); break; }
  25. case '19': {returnObject.push_back("C"); break; }
  26. case '23': {returnObject.push_back("D"); break; }
  27. default: {break; }
  28. }
  29. }
  30. return returnObject;
  31. }
  32. class matrix {
  33. public:
  34. vector <int> matrixB;
  35. vector <int> code;
  36. int selector = 11;
  37. void parse(char userInput) {
  38. int returnObject = 0;
  39. switch (userInput) {
  40. case 'D': {
  41. if (this->selector == 23 || this->selector == 17 || this->selector == 19 || this->selector == 11 || this->selector == 15) {
  42. returnObject = this->selector;
  43. }else{
  44. returnObject = this->selector + 5;
  45. }
  46. break;
  47. }
  48. case 'U': {
  49. if (this->selector == 3 || this->selector == 7 || this->selector == 9 || this->selector == 15 || this->selector == 11) {
  50. returnObject = this->selector;
  51. }
  52. else {
  53. returnObject = this->selector - 5;
  54. }
  55. break;
  56. }
  57. case 'L': {
  58. if (this->selector == 3 || this->selector == 7 || this->selector == 11 || this->selector == 17 || this->selector == 23) {
  59. returnObject = this->selector;
  60. }
  61. else {
  62. returnObject = this->selector - 1;
  63. }
  64. break;
  65. }
  66. case 'R': {
  67. if (this->selector == 3 || this->selector == 9 || this->selector == 15 || this->selector == 19 || this->selector == 23) {
  68. returnObject = this->selector;
  69. }
  70. else {
  71. returnObject = this->selector + 1;
  72. }
  73. break;
  74. }
  75. }
  76. this->selector = returnObject;
  77. }
  78.  
  79. matrix() {
  80. for (int i = 0; i < 26; i++) {
  81. this->matrixB.push_back(i);
  82. }
  83. }
  84. };
  85. matrix classHandle(vector <string> userInput, matrix matrixObject) {
  86. for (int i = 0; i < userInput.size(); i++) {
  87. string stringPtr = userInput.at(i);
  88. for (int b = 0; b < stringPtr.length(); b++) {
  89. matrixObject.parse(stringPtr[b]);
  90. }
  91. matrixObject.code.push_back(matrixObject.selector);
  92. }
  93. return matrixObject;
  94. }
  95.  
  96. vector <string> input;
  97. void main() {
  98. matrix A;
  99. input = getInputFile("C:\\temp\\New Text Document.txt");
  100. A = classHandle(input, A);
  101. vout(A.code);
  102. system("pause");
  103. }
  104. // need to translate this using key matrix - the matrix is 5x5 1-25 and match it with your day 2 key
Advertisement
Add Comment
Please, Sign In to add comment