Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <chrono>
- #include <thread>
- using namespace std;
- int main()
- {
- #ifndef _WIN32
- const char* CSI = "\033[";
- #endif
- const int maxCord = 9;
- const int frameSub = 0;
- //Setup frameMin/Max Not really needed, but makes code MUCH more readable
- int frameMin = frameSub;
- int frameMax = maxCord - 1 - frameSub;
- const int maxLoopX = frameMax;
- const int minLoopX = frameMin;
- int loopStepX = 1;
- int loopX = minLoopX;
- const int maxLoopY = frameMax;
- const int minLoopY = frameMin;
- int loopStepY = 1;
- int loopY = minLoopY;
- int loopActive = 1; // 1 - loopX, 0 - loopY
- char block = ' ';
- while (true)
- {
- #ifndef _WIN32
- cout << CSI << "2J"; //portable clear screen
- #else
- system("cls");
- #endif
- for (int y = 0; y < maxCord; y++)
- {
- for (int x = 0; x < maxCord; x++)
- {
- block = ' ';
- if ((y == frameMin or y == frameMax) and (x >= frameMin and x <= frameMax)) { block = '*'; };
- if ((x == frameMin or x == frameMax) and (y >= frameMin and y <= frameMax)) { block = '*'; };
- if (loopActive) // 1 - loopX, 0 - loopY
- {
- if ((x == loopX) and ((y == frameMin and loopStepX == 1) or (y == frameMax and loopStepX == -1))) { block = '#'; };
- }
- else
- {
- if ((y == loopY) and ((x == frameMin and loopStepY == -1) or (x == frameMax and loopStepY == 1))) { block = '#'; };
- }
- cout << ' ' << block << ' ';
- }
- cout << endl;
- }
- if (loopActive) // 1 - loopX, 0 - loopY
- {
- if ((loopX == maxLoopX && loopStepX > 0) || (loopX == minLoopX && loopStepX < 0)) { loopStepX *= -1; loopActive = !loopActive; };
- loopX += loopStepX;
- }
- else
- {
- if ((loopY == maxLoopY && loopStepY > 0) || (loopY == minLoopY && loopStepY < 0)) { loopStepY *= -1; loopActive = !loopActive; };
- loopY += loopStepY;
- }
- std::this_thread::sleep_for(std::chrono::milliseconds(500));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment