Advertisement
aed1oN

IDI

Apr 25th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1. void Idi(int &x, int &y, Pravci orijentacija, int korak) {
  2.     if (status) {
  3.         switch (orijentacija) {
  4.             case Pravci::Sjever:
  5.                 if (korak < 0) {
  6.                     if (static_cast<long long int>(y) + korak < std::numeric_limits<int>::min())
  7.                         y = std::numeric_limits<int>::min();
  8.                     else y += korak;
  9.                 } else {
  10.                     if (static_cast<long long int>(y) + korak > std::numeric_limits<int>::max())
  11.                         y = std::numeric_limits<int>::max();
  12.                     else y += korak;
  13.                 }
  14.                 break;
  15.             case Pravci::Istok:
  16.                 if (korak < 0) {
  17.                     if (static_cast<long long int>(x) + korak < std::numeric_limits<int>::min())
  18.                         x = std::numeric_limits<int>::min();
  19.                     else x += korak;
  20.                 } else {
  21.                     if (static_cast<long long int>(x) + korak > std::numeric_limits<int>::max())
  22.                         x = std::numeric_limits<int>::max();
  23.                     else x += korak;
  24.                 }
  25.                 break;
  26.             case Pravci::Jug:
  27.                 if (korak < 0) {
  28.                     if (static_cast<long long int>(y) - korak > std::numeric_limits<int>::max())
  29.                         y = std::numeric_limits<int>::max();
  30.                     else y -= korak;
  31.                 } else {
  32.                     if (static_cast<long long int>(y) - korak < std::numeric_limits<int>::min())
  33.                         y = std::numeric_limits<int>::min();
  34.                     else y -= korak;
  35.                 }
  36.                 break;
  37.             case Pravci::Zapad:
  38.                 if (korak < 0) {
  39.                     if (static_cast<long long int>(x) - korak > std::numeric_limits<int>::max())
  40.                         x = std::numeric_limits<int>::max();
  41.                     else x -= korak;
  42.                 } else {
  43.                     if (static_cast<long long int>(x) - korak < std::numeric_limits<int>::min())
  44.                         x = std::numeric_limits<int>::min();
  45.                     else x -= korak;
  46.                 }
  47.                 break;
  48.         }
  49.     } else return;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement