avr39-ripe

kukocFrame

Mar 9th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <chrono>
  4. #include <thread>
  5.  
  6. using namespace std;
  7. int main()
  8. {
  9. #ifndef _WIN32
  10.     const char* CSI = "\033[";
  11. #endif
  12.     const int maxCord = 9;
  13.     const int frameSub = 0;
  14.  
  15.     //Setup frameMin/Max Not really needed, but makes code MUCH more readable
  16.     int frameMin = frameSub;
  17.     int frameMax = maxCord - 1 - frameSub;
  18.  
  19.     const int maxLoopX = frameMax;
  20.     const int minLoopX = frameMin;
  21.     int loopStepX = 1;
  22.     int loopX = minLoopX;
  23.  
  24.     const int maxLoopY = frameMax;
  25.     const int minLoopY = frameMin;
  26.     int loopStepY = 1;
  27.     int loopY = minLoopY;
  28.  
  29.     int loopActive = 1; // 1 - loopX, 0 - loopY
  30.     char block = ' ';
  31.  
  32.     while (true)
  33.     {
  34. #ifndef _WIN32
  35.         cout << CSI << "2J"; //portable clear screen
  36. #else
  37.         system("cls");
  38. #endif
  39.         for (int y = 0; y < maxCord; y++)
  40.         {
  41.             for (int x = 0; x < maxCord; x++)
  42.             {
  43.                 block = ' ';
  44.                 if ((y == frameMin or y == frameMax) and (x >= frameMin and x <= frameMax)) { block = '*'; };
  45.                 if ((x == frameMin or x == frameMax) and (y >= frameMin and y <= frameMax)) { block = '*'; };
  46.                 if (loopActive) // 1 - loopX, 0 - loopY
  47.                 {
  48.                     if ((x == loopX) and ((y == frameMin and loopStepX == 1) or (y == frameMax and loopStepX == -1))) { block = '#'; };
  49.                 }
  50.                 else
  51.                 {
  52.                     if ((y == loopY) and ((x == frameMin and loopStepY == -1) or (x == frameMax and loopStepY == 1))) { block = '#'; };
  53.                 }
  54.                 cout << ' ' << block << ' ';
  55.             }
  56.             cout << endl;
  57.         }
  58.  
  59.         if (loopActive) // 1 - loopX, 0 - loopY
  60.         {
  61.             if ((loopX == maxLoopX && loopStepX > 0) || (loopX == minLoopX && loopStepX < 0)) { loopStepX *= -1; loopActive = !loopActive; };
  62.             loopX += loopStepX;
  63.         }
  64.         else
  65.         {
  66.             if ((loopY == maxLoopY && loopStepY > 0) || (loopY == minLoopY && loopStepY < 0)) { loopStepY *= -1; loopActive = !loopActive; };
  67.             loopY += loopStepY;
  68.         }
  69.  
  70.         std::this_thread::sleep_for(std::chrono::milliseconds(500));
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment