Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 19.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. #include <cstdlib>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. char v[12][12], g[12][12], l, xc[3], def, dirv[10], opt[10];
  9. int i, j, k, dir, x, y, steps, heads, eff, something, lang, mainOpt, c1, c2, c3;
  10. char c, rdy, player1[20], player2[20], aux[20], t;
  11. float timeInterval, start, stop, q;
  12.  
  13. struct plane
  14. {
  15.     int x;
  16.     int y;
  17.     int dir;
  18. };
  19.  
  20. void sleep(long d)
  21. {
  22.     clock_t start = clock();
  23.     while(clock() - start < d);
  24. }
  25.  
  26. void cleanVector(char v[12][12])
  27. {
  28.     def = 1;
  29.     int def = 1;
  30.     for(i = 1; i <= 10; i++)
  31.     {
  32.         for(j = 1; j <= 10; j++)
  33.             v[i][j] = def;
  34.     }
  35. }
  36.  
  37. int isTheVectorAlright(int k, char v[12][12])
  38. {
  39.     int hm;
  40.     bool alright = false;
  41.     for(i = 1; i <= 10; i++)
  42.     {
  43.         for(j = 1; j <= 10; j++)
  44.         {
  45.             if(v[i][j] == 2)
  46.                 hm++;
  47.         }
  48.     }
  49.     if(hm == k * 8)
  50.         alright = true;
  51.     return alright;
  52. }
  53.  
  54. void showVector(char v[12][12])
  55. {
  56.   cout << ' ' << ' ';
  57.     l = 'a';
  58.     cout << "                          ";
  59.     for(i = 1; i <= 10; i++)
  60.         cout << i << ' ';
  61.     cout << endl;
  62.     cout << endl;
  63.     for(i = 1; i <= 10; i++)
  64.     {
  65.         cout << "                         ";
  66.         cout << l << "  ";
  67.         l = l + 1;
  68.         for(j = 1; j <= 10; j++)
  69.             cout << v[i][j] << ' ';
  70.         cout << "  " << l;
  71.         cout << endl;
  72.     }
  73.     cout << endl << "                            ";
  74.     for(i = 1; i <= 10; i++)
  75.         cout << i << ' ';
  76.     cout << endl;
  77. }
  78.  
  79. void slidingShowVector(char v[12][12])
  80. {
  81.     cout << ' ' << ' ';
  82.     l = 'a';
  83.     cout << "                          ";
  84.     for(i = 1; i <= 10; i++)
  85.         cout << i << ' ';
  86.     cout << endl;
  87.     cout << endl;
  88.     for(i = 1; i <= 10; i++)
  89.     {
  90.         cout << "                         ";
  91.         cout << l << "  ";
  92.         l = l + 1;
  93.         sleep(17);
  94.         for(j = 1; j <= 10; j++)
  95.             cout << v[i][j] << ' ';
  96.         cout << "  " << l;
  97.         cout << endl;
  98.     }
  99.     cout << endl << "                            ";
  100.     for(i = 1; i <= 10; i++)
  101.         cout << i << ' ';
  102.     cout << endl;
  103. }
  104.  
  105.  
  106. void askDirection()
  107. {
  108.     cout << "                     *        ***         * *        * *" << endl; sleep(50);
  109.     cout << "                  1)***     2) *      3) ****     4) ****" << endl; sleep(50);
  110.     cout << "                     *        ***         * *        * *" << endl; sleep(50);
  111.     cout << "                    ***        *                " << endl;
  112. }
  113.  
  114. void addPlane(int &dir, int x, int y, char v[12][12])
  115. {
  116.     c = 2;
  117.     if(dir == 1)
  118.     {
  119.         v[x][y] = c;
  120.         v[x + 1][y - 1] = c;
  121.         v[x + 1][y] = c;
  122.         v[x + 1][y + 1] = c;
  123.         v[x + 2][y] = c;
  124.         v[x + 3][y] = c;
  125.         v[x + 3][y + 1] = c;
  126.         v[x + 3][y - 1] = c;
  127.     }
  128.     else if(dir == 2)
  129.     {
  130.         v[x][y] = c;
  131.         v[x - 1][y - 1] = c;
  132.         v[x - 1][y] = c;
  133.         v[x - 1][y + 1] = c;
  134.         v[x - 2][y] = c;
  135.         v[x - 3][y - 1] = c;
  136.         v[x - 3][y] = c;
  137.         v[x - 3][y + 1] = c;
  138.     }
  139.     else if(dir == 3)
  140.     {
  141.         v[x][y] = c;
  142.         v[x + 1][y + 1] = c;
  143.         v[x][y + 1] = c;
  144.         v[x - 1][y + 1] = c;
  145.         v[x][y + 2] = c;
  146.         v[x + 1][y + 3] = c;
  147.         v[x][y + 3] = c;
  148.         v[x - 1][y + 3] = c;
  149.     }
  150.     else if(dir == 4)
  151.     {
  152.         v[x][y] = c;
  153.         v[x + 1][y - 1] = c;
  154.         v[x][y - 1] = c;
  155.         v[x - 1][y - 1] = c;
  156.         v[x][y - 2] = c;
  157.         v[x + 1][y - 3] = c;
  158.         v[x][y - 3] = c;
  159.         v[x - 1][y - 3] = c;
  160.     }
  161. }
  162.  
  163. int main()
  164. {
  165.         player1 = {'P','l','a','y','e','r',' ',' 1'};
  166.         player2 = {'P','l','a','y','e','r',' ',' 2'};
  167.  
  168. Menu1:
  169.         opt[0] = 0;
  170.         while((strlen(opt) != 1) or (opt[0] != '1' and opt[0] != '2' and opt[0] != '3' and opt[0] != '4' and opt[0] != '5' and opt[0] != '6' ))
  171.         {
  172.             system("cls");
  173.             cout << endl;
  174.             cout << "                            Bun venit la Avionase!" << endl; sleep(200);
  175.             cout << "" << player1 << " vs ";
  176.             cout << player2 << endl; sleep(200);
  177.             for(i = 1; i <= 80; i++)
  178.             {
  179.                 cout << '-'; sleep(6);
  180.             }
  181.             cout << "                 |                                           |    " << endl; sleep(50);
  182.             cout << "                 |          1. Joc nou [lovituri]            |    " << endl; sleep(50);
  183.             cout << "                 |                                           |    " << endl; sleep(50);
  184.             cout << "                 |                                           |    " << endl; sleep(50);
  185.             cout << "                 |        2. Joc nou [lovituri + timp]       |    " << endl; sleep(50);
  186.             cout << "                 |                                           |    " << endl; sleep(50);
  187.             cout << "                 |                                           |    " << endl; sleep(50);
  188.             cout << "                 |       3. Schimba numele jucatorilor       |    " << endl; sleep(50);
  189.             cout << "                 |                                           |    " << endl; sleep(50);
  190.             cout << "                 |                                           |    " << endl; sleep(50);
  191.             cout << "                 |           4. Schimba rolurile             |    " << endl; sleep(50);
  192.             cout << "                 |                                           |    " << endl; sleep(50);
  193.             cout << "                 |                                           |    " << endl; sleep(50);
  194.             cout << "                 |             5. Cum se joaca?              |    " << endl; sleep(50);
  195.             cout << "                 |                                           |    " << endl; sleep(50);
  196.             cout << "                 |                                           |    " << endl; sleep(50);
  197.             cout << "                 |               6. Iesire                   |    " << endl; sleep(50);
  198.             cout << "                 |                                           |    " << endl; sleep(50);
  199.             cout << "                 |"; sleep(50);
  200.             for(i = 1; i <= 43; i++)
  201.             {
  202.                 cout << '-'; sleep(10);
  203.             }
  204.             cout << "|";
  205.             cout << "                                                      ";cin >> opt;
  206.         }
  207.         if (opt[0] == '5')
  208.         {
  209.             system("cls");
  210.             for(i = 1; i <= 80; i++)
  211.             {
  212.                 cout << '-'; sleep(10);
  213.             }
  214.             cout << endl;
  215.             cout << "Acest joc e bazat pe jocul denumit popular 'avioane'. Are aceeleasi principii,"  << endl; sleep(50);
  216.             cout << "un jucator plaseaza 3 avioane pe o grila 10*10, iar celalalt jucator incearca "  << endl; sleep(50);
  217.             cout << "sa ghiceasca cum au fost plasate. Pentru a plasa un avion, prima data trebuie "  << endl; sleep(50);
  218.             cout << "sa introduci coordonatele varfului(capului) sau, iar apoi sa alegi modul in "    << endl; sleep(50);
  219.             cout << "care doresti sa-l plasezi. Spre exemplu, daca vrei sa adaugi un avion care "     << endl; sleep(50);
  220.             cout << "sa-nceapa din casuta b2 si sa aiba restul corpului in jos, scrii b2, iar apoi "  << endl; sleep(50);
  221.             cout << "alegi orientarea acestuia, in cazul de fata, '2'. Oricum, n-ai cum sa dai gres." << endl; sleep(50);
  222.             cout << "Distractie placuta!" << endl << endl;
  223.             for(i = 1; i <= 80; i++)
  224.             {
  225.                 cout << '-'; sleep(10);
  226.             }
  227.             cout << endl << "                            1.Inapoi la meniu" << endl;
  228.             cout << "                                     ";
  229.             mainOpt = 0;
  230.             while(mainOpt != 1)
  231.             {
  232.                 cin >> mainOpt;
  233.             }
  234.             goto Menu1;
  235.         }
  236.         else if(opt[0] == '6')
  237.         {
  238.         }
  239.         else if(opt[0] == '3')
  240.         {
  241.             system("cls");
  242.             cout << endl << endl << endl << endl << endl << endl << endl << endl;
  243.             for(i = 1; i <= 80; i++)
  244.             {
  245.                 cout << '-'; sleep(6);
  246.             }
  247.             cout << "      Introdu numele primului jucator (cel care plaseaza avioanele): " << endl << endl;
  248.             cout << "                                  ";
  249.             cin >> player1;
  250.             cout << endl;
  251.             cout << "                                ";
  252.             for(i = 1; i <= 10; i++)
  253.             {
  254.                 cout << '-'; sleep(6);
  255.             }
  256.             cout << endl << endl;
  257.             cout << "     Introdu numele celui de-al doilea jucator (cel care le ghiceste): " << endl << endl;
  258.             cout << "                                  ";
  259.             cin >> player2;
  260.             cout << endl;
  261.             for(i = 1; i <= 80; i++)
  262.             {
  263.                 cout << '-'; sleep(6);
  264.             }
  265.             goto Menu1;
  266.         }
  267.         else if(opt[0] == '4')
  268.         {
  269. SwitchAgain1:
  270.             int opt2;
  271.             system("cls");
  272.             cout << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl;
  273.             cout << "                               ";
  274.             cout << "Schimb rolurile";
  275.             sleep(400);
  276.             cout << ".";
  277.             sleep(400);
  278.             cout << ".";
  279.             sleep(400);
  280.             cout << ".";
  281.             system("cls");
  282.             for(i = 0; i <= 20; i++)
  283.                 aux[i] = player1[i];
  284.             for(i = 0; i <= 20; i++)
  285.                 player1[i] = player2[i];
  286.             for(i = 0; i <= 20; i++)
  287.                 player2[i] = aux[i];
  288.             if(something == 3)
  289.             {
  290.                 something = 0;
  291.                 goto playAgain1;
  292.             }
  293.             cout << endl << endl << endl << "                               Roluri schimbate. " << endl << endl << endl;
  294.             (player1[strlen(player1) - 1]=='a')? cout << "               Cea": cout << "               Cel";
  295.             cout <<         " care plaseaza avioanele este acum " << player1 << "." << endl << endl;sleep(50);
  296.             (player2[strlen(player2) - 1]=='a')? cout << "                       Cea": cout << "                       Cel";
  297.             cout <<         " care le ghiceste e " << player2 << "." << endl << endl << endl; sleep(50);
  298.             for(i = 1; i <= 80; i++)
  299.             {
  300.                 cout << '-'; sleep(6);
  301.             }
  302.             cout << endl << endl << endl;
  303.             cout <<         "                        1. Inapoi la Meniul principal" << endl << endl << endl; sleep(50);
  304.             cout <<         "                            2. Schimba din nou" << endl << endl << endl; sleep(50);
  305.             cin >> opt2;
  306.             if(opt2 == 2)
  307.                 goto SwitchAgain1;
  308.             else
  309.                 goto Menu1;
  310.         }
  311.         else if(opt[0] == '1' or opt[0] == '2')
  312.         {
  313. playAgain1:
  314.             system("cls");
  315.             cout << endl << "   Inainte sa-ncepi, asigura-te ca " << player2 << " nu trage cu ochiul la ce scrii! :)" << endl;sleep(50);
  316.             cout << "                             Distractie placuta!" << endl << endl; sleep(50);
  317.             cleanVector(v);
  318.             plane p1,p2,p3;
  319.             for(k = 1; k < 4; k++) // repeating until all three planes are placed
  320.             {
  321.  
  322.                 slidingShowVector(v);
  323.                 cout << endl << endl << "                         Introdu varful avionului " << k << ":" << endl << endl;
  324.                 cout << "                                    ";
  325.                 cin >> xc;
  326.                 x = xc[0] - 96;
  327.                 y = xc[1] - 48;
  328.                 if((y == 1) and (xc[2] - 48 == 0))
  329.                     y = 10;
  330.                 //check if valid input
  331.  
  332.                 if((x < 1) or (x > 10) or (y < 1) or (y > 10) or ((strlen(xc) > 2) and (y != 10)))
  333.                 {
  334.                     system("cls");
  335.                     cout << endl << endl << "                   Coordonate invalide. Incearca din nou." << endl << endl;
  336.                     sleep(1500);
  337.                     k = k-1;
  338.                     continue;
  339.                 }
  340.                 cout << endl <<             "                       Cum doresti sa asezi avionul?" << endl << endl;
  341.                 dir = 0;
  342.                 while((dir < 1) or (dir > 4)) //check if valid input
  343.                 {
  344.                     askDirection();
  345.                     cout << "                                    ";
  346.                     cin >> dirv;
  347.                     dir = dirv[0] - 48;
  348.                     if((dir < 1) or (dir > 4))
  349.                         cout <<             "                    Optiune invalida. Incearca din nou." << endl;
  350.                 }
  351.                 //storing planes in structs
  352.                 if(k == 1)
  353.                 {
  354.                     p1.x = x;
  355.                     p1.y = y;
  356.                     p1.dir = dir;
  357.                 }
  358.                 else if(k == 2)
  359.                 {
  360.                     p2.x = x;
  361.                     p2.y = y;
  362.                     p2.dir = dir;
  363.                 }
  364.                 else if(k == 3)
  365.                 {
  366.                     p3.x = x;
  367.                     p3.y = y;
  368.                     p3.dir = dir;
  369.                 }
  370.                 //depending at what step, which planes' coordinates to use
  371.                 if(k == 1)
  372.                 {
  373.                     addPlane(p1.dir, p1.x, p1.y, v);
  374.                 }
  375.                 else if(k == 2)
  376.                 {
  377.                     addPlane(p2.dir, p2.x, p2.y, v);
  378.                 }
  379.                 else if(k == 3)
  380.                 {
  381.                     addPlane(p3.dir, p3.x, p3.y, v);
  382.                 }
  383.                 if(!isTheVectorAlright(k,v))
  384.                 {
  385.                     system("cls");
  386.                     cout << endl << "   Avioanele se intersecteaza sau exced marimea vectorului. Incearca din nou." << endl << endl << endl << endl;
  387.                     sleep(1500);
  388.                     cleanVector(v);
  389.                     if(k == 2)
  390.                         addPlane(p1.dir, p1.x, p1.y, v);
  391.                     if(k == 3)
  392.                     {
  393.                         addPlane(p1.dir, p1.x, p1.y, v);
  394.                         addPlane(p2.dir, p2.x, p2.y, v);
  395.                     }
  396.                     k = k - 1;
  397.                     continue;
  398.                 }
  399.                 system("cls");
  400.                 cout << endl << endl << endl << "                          Avion adaugat cu succes." << endl << endl;
  401.                 if(k == 3)
  402.                 {
  403.                     showVector(v);
  404.                     cout << endl << endl << endl << "              Buna treaba " << player1 << ", ai plasat toate cele 3 avioane." << endl << endl;
  405.                 }
  406.             }
  407.             cout <<                                 "            Scrie 'c' cand esti gata sa-l lasi pe " << player2 << " sa joace." << endl;
  408.             // player 2 starts here
  409.             rdy = 'd';
  410.             cout << "                                     ";
  411.             while(rdy != 'c')
  412.             {
  413.                 cin >> rdy;
  414.             }
  415.             system("cls");
  416.             cout << endl << "        " << player2 << ", cand esti gata, scrie 't' pentru a incepe sa ghicesti!" << endl << endl;
  417.             cleanVector(g);
  418.             t = 'bolovan';
  419.             cout << "                                     ";
  420.             while(t != 't')
  421.             {
  422.                 cin >> t;
  423.             }
  424.             system("cls");
  425.             cout << endl << "                              Bafta " << player2 << "!" << endl << endl;
  426.             heads = 0;
  427.             start = clock();
  428.             while(heads < 3)
  429.             {
  430.  
  431.                 showVector(g);
  432.                 cout << "                                    ";
  433.                 cin >> xc;
  434.                 x = xc[0] - 96;
  435.                 y = xc[1] - 48;
  436.                 if((y == 1) and (xc[2] - 48 == 0))
  437.                     y = 10;
  438.                 if((x < 1) or (x > 10) or (y < 1) or (y > 10) or ((strlen(xc) > 2) and (y != 10)))
  439.                 {
  440.                     cout << endl << endl << "                   Coordonate invalide. Incearca din nou." << endl;
  441.                     sleep(2000);
  442.                     system("cls");
  443.                     cout << endl << endl << endl;
  444.                     continue;
  445.                 }
  446.                 if((g[x][y] == '*') or (g[x][y] == 'x') or (g[x][y] == 2))
  447.                 {
  448.                     system("cls");
  449.                     cout << endl << "                           Ai mai dat o data aici." << endl << endl;
  450.                     continue;
  451.                 }
  452.                 if(v[x][y] == 2)
  453.                     g[x][y] = 2;
  454.                 else
  455.                     g[x][y] = 'x';
  456.                 if(((x == p1.x) and (y == p1.y)) or ((x == p2.x) and (y == p2.y)) or ((x == p3.x) and (y == p3.y)))
  457.                 {
  458.                     system("cls");
  459.                     if(heads == 0)
  460.                         cout << endl << "                         Bravo! Ai lovit un varf!" << endl << endl;
  461.                     else if(heads == 1)
  462.                         cout << endl << "                       Bravo! Ai lovit inca un varf!" << endl << endl;
  463.                     g[x][y] = '*';
  464.                     heads++;
  465.                 }
  466.                 else
  467.                 {
  468.                     system("cls");
  469.                     cout << endl << endl << endl;
  470.                 }
  471.  
  472.                 steps++;
  473.  
  474.             }
  475.             system("cls");
  476.             slidingShowVector(v);
  477.             for(i = 1; i <= 80; i++)
  478.             {
  479.                 cout << '-'; sleep(6);
  480.             }
  481.             stop = clock();
  482.             timeInterval = stop - start;
  483.             if(opt[0] == '1')
  484.                 cout << endl << "                    Felicitari " << player2 << "! Scorul tau: " << 104-steps << endl << endl;
  485.             else
  486.             {
  487.                 q = steps * 10 + (timeInterval/1000);
  488.                 eff = 115 - q/10;
  489.                 cout << endl << "               Felicitari " << player2 << "! Ai distrus toate 3 avioanele!" << endl;
  490.                 cout << "                               Scorul tau: " << eff << endl;
  491.                 cout << endl;
  492.             }
  493.             for(i = 1; i <= 80; i++)
  494.                 {
  495.                 cout << '-'; sleep(6);
  496.                 }
  497.             sleep(2000);
  498.             cout << "                               1. Joaca din nou           "<< endl; sleep(50);
  499.             cout << "                       2. Schimba rolurile & joaca din nou"<< endl; sleep(50);
  500.             cout << "                              3. Meniul principal         "<< endl; sleep(50);
  501.             cout << "                                  4. Iesire               "<< endl; sleep(50);
  502.             int opt3 = 0;
  503.             cin >> opt3;
  504.             if(opt3 == 1)
  505.             {
  506.                 steps = 0;
  507.                 goto playAgain1;
  508.             }
  509.             if(opt3 == 2)
  510.             {
  511.                 steps = 0;
  512.                 opt[0] = '2';
  513.                 something = 3;
  514.                 goto SwitchAgain1;
  515.             }
  516.             if(opt3 == 3)
  517.                 goto Menu1;
  518.  
  519.             if(opt3 == 4)
  520.                 exit(0);
  521.         }
  522.     return 0;
  523. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement