Anwar_Rizk

RK2022

Apr 6th, 2022 (edited)
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <windows.h>
  3. using namespace std;
  4.  
  5. //@author Anwar
  6.  
  7. void draw_fanoos(){
  8.     int n, star = 1;
  9.     s:
  10.     system("cls");
  11.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6);
  12.     cout << "\n Enter a number 'n' (divisible by 4 & n >= 20)...\n";
  13.     cout << " like 20, 24, 28, 32, 36..... :  ";
  14.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
  15.     cin >> n;
  16.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
  17.     if(n % 4 || n < 20) {
  18.         cout << "\n\t\t\t Invalid number...\n";
  19.         Sleep(500);
  20.         goto s;
  21.     }
  22.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 13);
  23.     // draw top triangle
  24.     cout << "\n" << string(30, ' ');
  25.     cout << string(n/2 - 1, ' ') << "C\n";
  26.     for(int i = n/2 - 1; i >= 0; i--){
  27.       Sleep(25);
  28.       cout << string(30, ' ');
  29.       cout << string(i, ' ') << string(star, '*') << "\n";
  30.       star += 2;
  31.     }
  32.     // draw middle part
  33.     int tmp = n;
  34.     for(int i = 0; i < n/4; i++)
  35.     {  
  36.         Sleep(25);
  37.         if(i == 0){
  38.           SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
  39.           cout << string(30, ' ');
  40.           cout << '\\' << string((n - 17) / 2, ' ');
  41.           SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 176);
  42.           cout << "RAMADAN  KAREEM";
  43.           SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
  44.           cout << string((n - 17) / 2, ' ') << "/\n";
  45.           tmp--;
  46.           continue;
  47.         }
  48.         cout << string(30, ' ');
  49.         cout << string(i, ' ') << '\\' << string(tmp - 3 - i, ' ') << "/\n";
  50.         tmp--;
  51.     }
  52.     // draw bottom part
  53.     star = n/2 - 1;
  54.     for(int j = n/4; j >= 1; j--){
  55.       Sleep(25);
  56.       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
  57.       cout << string(30, ' ');
  58.       cout << string(j, ' ') << string(star, '*') << "\n";
  59.       star += 2;
  60.     }
  61.     cout << "\n";
  62. }
  63.  
  64. int main()
  65. {
  66.     char c;
  67.     do {
  68.         system("cls");
  69.         draw_fanoos();
  70.         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
  71.         cout << "\t\t\t Want to try again? (Y/N): ";
  72.         cin >> c;
  73.     } while(tolower(c) != 'n');
  74.  
  75.   return 0;
  76. }
  77.  
Add Comment
Please, Sign In to add comment