Advertisement
MrChrHD

Simple Pong Game (graphics.h) - Italian Version (1.1)

Jan 29th, 2017
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Download e codice sorgente disponibile su http://www.mrchrhd.altervista.org --
  2. #include <iostream>
  3. #include <string>
  4. #include <cstdio>
  5. #include <graphics.h>
  6. #include <windows.h>
  7. using namespace std;
  8.  
  9. int uscita();
  10. void gioco(int maxscore, string SFX);
  11. void guida();
  12. void sett(int &maxscore, string &SFX);
  13. void changelog();
  14. int main();
  15.  
  16. //Shared
  17. int maxscore = 10;
  18. string SFX = "On";
  19.  
  20. //Menù principale
  21. int main()
  22. {
  23.   //Impostazioni finestra
  24.   HWND console = GetConsoleWindow();
  25.   RECT r;
  26.   GetWindowRect(console, &r);
  27.   MoveWindow(console, r.left, r.top, 800, 600, TRUE);
  28.  
  29.   //Scelta
  30.   string scelta;
  31.  
  32.   do
  33.   {
  34.   system("CLS");
  35.   system("COLOR C");
  36.   cout << "                                            Pong!" << endl << endl;
  37.   cout << "                                      Menu' Principale:" << endl << endl;
  38.   cout << "1- [G]ioca!" << endl << "2- [I]mpostazioni" << endl << "3- [Gu]ida" <<endl << "4- [C]hangelog" << endl << "0- [E]sci" << endl << endl;
  39.   cout << "Scegli un'opzione (scrivere il contenuto nelle parentesi, case sensitive): ";
  40.   cin >> scelta;
  41.   if (scelta != "E" && scelta != "G" && scelta != "I" && scelta != "Gu" && scelta != "C")
  42.   {
  43.      cout << endl << endl << "Comando non riconosciuto. Controlla cio' che hai scritto e riprova." << endl;
  44.      system("PAUSE");
  45.      cout << endl;
  46.   }
  47.   }while(scelta != "E" && scelta != "G" && scelta != "I" && scelta != "Gu" && scelta != "C");
  48.   if (scelta == "E")
  49.   {
  50.      uscita();
  51.   }
  52.   if (scelta == "G")
  53.   {
  54.      gioco(maxscore, SFX);
  55.   }
  56.   if (scelta == "I")
  57.   {
  58.     sett(maxscore, SFX);
  59.   }
  60.   if (scelta == "Gu")
  61.   {
  62.      guida();
  63.   }
  64.   if (scelta == "C")
  65.   {
  66.      changelog();
  67.   }
  68. }
  69.  
  70.  
  71. //Uscita
  72. int uscita()
  73. {
  74.         cout << endl << endl << "Uscita in corso...";
  75.         Sleep(1500);
  76.         return 0;
  77. }
  78.  
  79. //Gioco
  80. void gioco(int maxscore, string SFX)
  81. {
  82.     system("CLS");
  83.     initwindow(1280, 696, "Pong!");
  84.     setbkcolor(BLUE);
  85.     setcolor(WHITE);
  86.     int a[4] = {30, 298, 60, 398};
  87.     int b[4] = {1220, 298, 1250, 398};
  88.     int p[2] = {90, 350};
  89.     int v = 0, p1sc = 0, p2sc = 0;
  90.     // v indica il movimento della pallina
  91.     // Se v = 1 allora la pallina va dritta verso sinistra
  92.     // Se v = 2 allora la pallina va varso sinistra, con un'inclinazione pari a 1/2
  93.     // Se v = 3 allora la pallina va verso sinistra, con un'inclinazione pari a -1/2
  94.     // Se v = 4 allora la pallina va verso sinistra, con un'inclinazione elevata POSITIVA
  95.     // Se v = 5 allora la pallina va verso sinistra, con un'inclinazione elevata NEGATIVA
  96.     // Se v = 10 allora la pallina va dritta verso sinistra
  97.     // Se v = 11 allora la pallina va verso destra, con un'inclinazione pari a 1/2
  98.     // Se v = 12 allora la pallina va verso destra, con un'inclinazione pari a -1/2
  99.     // Se v = 13 allora la pallina va verso sinistra, con un'inclinazione elevata POSITIVA
  100.     // Se v = 14 allora la pallina va verso sinistra, con un'inclinazione elevata NEGATIVA
  101.     // Se v = 20 allora la pallina rimbalza verso il basso dopo aver toccato la parte superiore
  102.     // Se v = 21 allora la pallina rimbalza verso l'alto dopo aver toccato la parte inferiore.
  103.     outtextxy(370, 350, "Premere un tasto per iniziare... I punteggi sono visualizzati sulla schemata del menu' principale.");
  104.     getch();
  105.     cleardevice();
  106.     outtextxy(550, 350, "La partita iniziera' in: 3");
  107.     Sleep(1000);
  108.     cleardevice();
  109.     outtextxy(550, 350, "La partita iniziera' in: 2");
  110.     Sleep(1000);
  111.     cleardevice();
  112.     outtextxy(550, 350, "La partita iniziera' in: 1");
  113.     Sleep(1000);
  114.     cleardevice();
  115.     if (SFX == "On")
  116.     {
  117.         Beep(440, 600);
  118.     }
  119.     setcolor(LIGHTGREEN);
  120.     rectangle(a[0], a[1], a[2], a[3]);
  121.     setcolor(LIGHTRED);
  122.     rectangle(b[0], b[1], b[2], b[3]);
  123.     setcolor(WHITE);
  124.     rectangle(25, 39, 1255, 657);
  125.     circle(p[0], p[1], 30);
  126.     while(1)
  127.     {
  128.     // Movimento in basso P1
  129.     if(GetAsyncKeyState('S'))
  130.     {
  131.      cleardevice();
  132.      a[1] = a[1]+ 5;
  133.      a[3] = a[3]+ 5;
  134.      setcolor(LIGHTGREEN);
  135.      rectangle(a[0], a[1], a[2], a[3]);
  136.      outtextxy(10, 10, "Giocatore 1");
  137.      setcolor(LIGHTRED);
  138.      rectangle(b[0], b[1], b[2], b[3]);
  139.      outtextxy(1200, 10, "Giocatore 2");
  140.      setcolor(WHITE);
  141.      circle(p[0], p[1], 30);
  142.      rectangle(25, 39, 1255, 657);
  143.     }
  144.      // Movimento in alto P1
  145.     if(GetAsyncKeyState('W'))
  146.     {
  147.      cleardevice();
  148.      a[1] = a[1] - 5;
  149.      a[3] = a[3] - 5;
  150.      setcolor(LIGHTGREEN);
  151.      rectangle(a[0], a[1], a[2], a[3]);
  152.      outtextxy(10, 10, "Giocatore 1");
  153.      setcolor(LIGHTRED);
  154.      rectangle(b[0], b[1], b[2], b[3]);
  155.      outtextxy(1200, 10, "Giocatore 2");
  156.      setcolor(WHITE);
  157.      circle(p[0], p[1], 30);
  158.      rectangle(25, 39, 1255, 657);
  159.      }
  160.      // Movimento in basso P2
  161.     if(GetAsyncKeyState(VK_DOWN))
  162.     {
  163.      cleardevice();
  164.      b[1] = b[1] + 5;
  165.      b[3] = b[3] + 5;
  166.      setcolor(LIGHTGREEN);
  167.      rectangle(a[0], a[1], a[2], a[3]);
  168.      outtextxy(10, 10, "Giocatore 1");
  169.      setcolor(LIGHTRED);
  170.      rectangle(b[0], b[1], b[2], b[3]);
  171.      outtextxy(1200, 10, "Giocatore 2");
  172.      setcolor(WHITE);
  173.      circle(p[0], p[1], 30);
  174.      rectangle(25, 39, 1255, 657);
  175.     }
  176.     // Movimento in alto P2
  177.     if(GetAsyncKeyState(VK_UP))
  178.     {
  179.      cleardevice();
  180.      b[1] = b[1] - 5;
  181.      b[3] = b[3] - 5;
  182.      setcolor(LIGHTGREEN);
  183.      rectangle(a[0], a[1], a[2], a[3]);
  184.      outtextxy(10, 10, "Giocatore 1");
  185.      setcolor(LIGHTRED);
  186.      rectangle(b[0], b[1], b[2], b[3]);
  187.      outtextxy(1200, 10, "Giocatore 2");
  188.      setcolor(WHITE);
  189.      circle(p[0], p[1], 30);
  190.      rectangle(25, 39, 1255, 657);
  191.      }
  192.     // Limite del campo P1
  193.     if(a[3] > 650)
  194.     {
  195.         cleardevice();
  196.         a[3] = 649;
  197.         a[1] = 549;
  198.         setcolor(LIGHTGREEN);
  199.         rectangle(a[0], a[1], a[2], a[3]);
  200.         outtextxy(10, 10, "Giocatore 1");
  201.         setcolor(LIGHTRED);
  202.         rectangle(b[0], b[1], b[2], b[3]);
  203.         outtextxy(1200, 10, "Giocatore 2");
  204.         setcolor(WHITE);
  205.         circle(p[0], p[1], 30);
  206.         rectangle(25, 39, 1255, 657);
  207.     }
  208.     if(a[1] < 50)
  209.     {
  210.         cleardevice();
  211.         a[1] = 51;
  212.         a[3] = 151;
  213.         setcolor(LIGHTGREEN);
  214.         rectangle(a[0], a[1], a[2], a[3]);
  215.         outtextxy(10, 10, "Giocatore 1");
  216.         setcolor(LIGHTRED);
  217.         rectangle(b[0], b[1], b[2], b[3]);
  218.         outtextxy(1200, 10, "Giocatore 2");
  219.         setcolor(WHITE);
  220.         circle(p[0], p[1], 30);
  221.         rectangle(25, 39, 1255, 657);
  222.     }
  223.      // Limite del campo P2
  224.     if(b[3] > 650)
  225.     {
  226.         cleardevice();
  227.         b[3] = 649;
  228.         b[1] = 549;
  229.         setcolor(LIGHTGREEN);
  230.         rectangle(a[0], a[1], a[2], a[3]);
  231.         outtextxy(10, 10, "Giocatore 1");
  232.         setcolor(LIGHTRED);
  233.         rectangle(b[0], b[1], b[2], b[3]);
  234.         outtextxy(1200, 10, "Giocatore 2");
  235.         setcolor(WHITE);
  236.         circle(p[0], p[1], 30);
  237.         rectangle(25, 39, 1255, 657);
  238.     }
  239.     if(b[1] < 50)
  240.     {
  241.         cleardevice();
  242.         b[1] = 51;
  243.         b[3] = 151;
  244.         setcolor(LIGHTGREEN);
  245.         rectangle(a[0], a[1], a[2], a[3]);
  246.         outtextxy(10, 10, "Giocatore 1");
  247.         setcolor(LIGHTRED);
  248.         rectangle(b[0], b[1], b[2], b[3]);
  249.         outtextxy(1200, 10, "Giocatore 2");
  250.         setcolor(WHITE);
  251.         circle(p[0], p[1], 30);
  252.         rectangle(25, 39, 1255, 657);
  253.     }
  254.     // Sbatte su P1
  255.     if(p[1] < a[3]+30 && p[1] > a[1]-30)
  256.     {
  257.  
  258.         if(p[0] == a[2]+30 || p[0] < a[2]+30 && p[0] > a[2]-59)
  259.         {
  260.            if (SFX == "On")
  261.         {
  262.         Beep(300, 100);
  263.         }
  264.         //Centro
  265.         if(p[1] < a[3]-40 && p[1] > a[1]+40)
  266.         {
  267.         cleardevice();
  268.         p[0] = p[0] +system("COLOR FC"); 10;
  269.         setcolor(LIGHTGREEN);
  270.         rectangle(a[0], a[1], a[2], a[3]);
  271.         outtextxy(10, 10, "Giocatore 1");
  272.         setcolor(LIGHTRED);
  273.         rectangle(b[0], b[1], b[2], b[3]);
  274.         outtextxy(1200, 10, "Giocatore 2");
  275.         setcolor(WHITE);
  276.         circle(p[0], p[1], 30);
  277.         rectangle(25, 39, 1255, 657);
  278.         v = 10;
  279.         }
  280.         //Parte alta intermedia
  281.         if(p[1] < a[3]-60 && p[1] > a[1]+20)
  282.         {
  283.         cleardevice();
  284.         p[0] = p[0] + 10;
  285.         p[1] = p[1] - 5;
  286.         setcolor(LIGHTGREEN);
  287.         rectangle(a[0], a[1], a[2], a[3]);
  288.         outtextxy(10, 10, "Giocatore 1");
  289.         setcolor(LIGHTRED);
  290.         rectangle(b[0], b[1], b[2], b[3]);
  291.         outtextxy(1200, 10, "Giocatore 2");
  292.         setcolor(WHITE);
  293.         circle(p[0], p[1], 30);
  294.         rectangle(25, 39, 1255, 657);
  295.         v = 11;
  296.         }
  297.         //Parte bassa intermedia
  298.         if(p[1] < a[3]-20 && p[1] > a[1]+60)
  299.         {
  300.         cleardevice();
  301.         p[0] = p[0] + 10;
  302.         p[1] = p[1] + 5;
  303.         setcolor(LIGHTGREEN);
  304.         rectangle(a[0], a[1], a[2], a[3]);
  305.         outtextxy(10, 10, "Giocatore 1");
  306.         setcolor(LIGHTRED);
  307.         rectangle(b[0], b[1], b[2], b[3]);
  308.         outtextxy(1200, 10, "Giocatore 2");
  309.         setcolor(WHITE);
  310.         circle(p[0], p[1], 30);
  311.         rectangle(25, 39, 1255, 657);
  312.         v = 12;
  313.         }
  314.         //Parte alta estrema
  315.         if(p[1] < a[3]-80 && p[1] > a[1]-30)
  316.         {
  317.         cleardevice();
  318.         p[0] = p[0] - 10;
  319.         p[1] = p[1] - 8;
  320.         setcolor(LIGHTGREEN);
  321.         rectangle(a[0], a[1], a[2], a[3]);
  322.         outtextxy(10, 10, "Giocatore 1");
  323.         setcolor(LIGHTRED);
  324.         rectangle(b[0], b[1], b[2], b[3]);
  325.         outtextxy(1200, 10, "Giocatore 2");
  326.         setcolor(WHITE);
  327.         circle(p[0], p[1], 30);
  328.         rectangle(25, 39, 1255, 657);
  329.         v = 13;
  330.         }
  331.         //Parte bassa estrema
  332.         if(p[1] < a[3]+30 && p[1] > a[1]+80)
  333.         {
  334.         cleardevice();
  335.         p[0] = p[0] + 10;
  336.         p[1] = p[1] + 8;
  337.         setcolor(LIGHTGREEN);
  338.         rectangle(a[0], a[1], a[2], a[3]);
  339.         outtextxy(10, 10, "Giocatore 1");
  340.         setcolor(LIGHTRED);
  341.         rectangle(b[0], b[1], b[2], b[3]);
  342.         outtextxy(1200, 10, "Giocatore 2");
  343.         setcolor(WHITE);
  344.         circle(p[0], p[1], 30);
  345.         rectangle(25, 39, 1255, 657);
  346.         v = 14;
  347.         }
  348.         }
  349.     }
  350.     // Sbatte su P2
  351.     if(p[1] < b[3]+30 && p[1] > b[1]-30)
  352.     {
  353.  
  354.         if(p[0] == b[0]-30 || p[0] > b[0]-30 && p[0] < b[2]+10)
  355.         {
  356.         if (SFX == "On")
  357.         {
  358.           Beep(300, 100);
  359.         }
  360.         //Centro
  361.         if(p[1] < b[3]-40 && p[1] > b[1]+40)
  362.         {
  363.         cleardevice();
  364.         p[0] = p[0] - 10;
  365.         setcolor(LIGHTGREEN);
  366.         rectangle(a[0], a[1], a[2], a[3]);
  367.         outtextxy(10, 10, "Giocatore 1");
  368.         setcolor(LIGHTRED);
  369.         rectangle(b[0], b[1], b[2], b[3]);
  370.         outtextxy(1200, 10, "Giocatore 2");
  371.         setcolor(WHITE);
  372.         circle(p[0], p[1], 30);
  373.         rectangle(25, 39, 1255, 657);
  374.         v = 1;
  375.         }
  376.         //Parte alta intermedia
  377.         if(p[1] < b[3]-60 && p[1] > b[1]+20)
  378.         {
  379.         cleardevice();
  380.         p[0] = p[0] - 10;
  381.         p[1] = p[1] - 5;
  382.         setcolor(LIGHTGREEN);
  383.         rectangle(a[0], a[1], a[2], a[3]);
  384.         outtextxy(10, 10, "Giocatore 1");
  385.         setcolor(LIGHTRED);
  386.         rectangle(b[0], b[1], b[2], b[3]);
  387.         outtextxy(1200, 10, "Giocatore 2");
  388.         setcolor(WHITE);
  389.         circle(p[0], p[1], 30);
  390.         rectangle(25, 39, 1255, 657);
  391.         v = 2;
  392.         }
  393.         //Parte bassa intermedia
  394.         if(p[1] < b[3]-20 && p[1] > b[1]+60)
  395.         {
  396.         cleardevice();
  397.         p[0] = p[0] - 10;
  398.         p[1] = p[1] + 5;
  399.         setcolor(LIGHTGREEN);
  400.         rectangle(a[0], a[1], a[2], a[3]);
  401.         outtextxy(10, 10, "Giocatore 1");
  402.         setcolor(LIGHTRED);
  403.         rectangle(b[0], b[1], b[2], b[3]);
  404.         outtextxy(1200, 10, "Giocatore 2");
  405.         setcolor(WHITE);
  406.         circle(p[0], p[1], 30);
  407.         rectangle(25, 39, 1255, 657);
  408.         v = 3;
  409.         }
  410.         //Parte bassa estrema
  411.         if(p[1] < b[3]+30 && p[1] > b[1]+80)
  412.         {
  413.         cleardevice();
  414.         p[0] = p[0] - 10;
  415.         p[1] = p[1] + 8;
  416.         setcolor(LIGHTGREEN);
  417.         rectangle(a[0], a[1], a[2], a[3]);
  418.         outtextxy(10, 10, "Giocatore 1");
  419.         setcolor(LIGHTRED);
  420.         rectangle(b[0], b[1], b[2], b[3]);
  421.         outtextxy(1200, 10, "Giocatore 2");
  422.         setcolor(WHITE);
  423.         circle(p[0], p[1], 30);
  424.         rectangle(25, 39, 1255, 657);
  425.         v = 4;
  426.         }
  427.         //Parte alta estrema
  428.         if(p[1] < b[3]-80 && p[1] > b[1]-30)
  429.         {
  430.         cleardevice();
  431.         p[0] = p[0] - 10;
  432.         p[1] = p[1] - 8;
  433.         setcolor(LIGHTGREEN);
  434.         rectangle(a[0], a[1], a[2], a[3]);
  435.         outtextxy(10, 10, "Giocatore 1");
  436.         setcolor(LIGHTRED);
  437.         rectangle(b[0], b[1], b[2], b[3]);
  438.         outtextxy(1200, 10, "Giocatore 2");
  439.         setcolor(WHITE);
  440.         circle(p[0], p[1], 30);
  441.         rectangle(25, 39, 1255, 657);
  442.         v = 5;
  443.         }
  444.         }
  445.     }
  446.     // Sbatte in alto
  447.     if(p[1] < 70)
  448.     {
  449.         if (SFX == "On")
  450.         {
  451.         Beep(300, 100);
  452.         }
  453.         if(v == 2)
  454.         {
  455.          v = 3;
  456.         }
  457.         if(v == 11)
  458.         {
  459.          v = 12;
  460.         }
  461.         if(v == 5)
  462.         {
  463.          v = 4;
  464.         }
  465.         if(v == 13)
  466.         {
  467.          v = 14;
  468.         }
  469.     }
  470.     // Sbatte in basso
  471.     if(p[1] > 620)
  472.     {
  473.         if (SFX == "On")
  474.         {
  475.         Beep(300, 100);
  476.         }
  477.         if(v == 3)
  478.         {
  479.          v = 2;
  480.         }
  481.         if(v == 12)
  482.         {
  483.          v = 11;
  484.         }
  485.         if(v == 4)
  486.         {
  487.          v = 5;
  488.         }
  489.         if(v == 14)
  490.         {
  491.          v = 13;
  492.         }
  493.     }
  494.     // Se v = 1 allora la pallina va dritta verso sinistra
  495.     if(v == 1)
  496.     {
  497.         cleardevice();
  498.         p[0] = p[0] - 10;
  499.         setcolor(LIGHTGREEN);
  500.         rectangle(a[0], a[1], a[2], a[3]);
  501.         outtextxy(10, 10, "Giocatore 1");
  502.         setcolor(LIGHTRED);
  503.         rectangle(b[0], b[1], b[2], b[3]);
  504.         outtextxy(1200, 10, "Giocatore 2");
  505.         setcolor(WHITE);
  506.         circle(p[0], p[1], 30);
  507.         rectangle(25, 39, 1255, 657);
  508.     }
  509.     // Se v = 2 allora la pallina va varso sinistra, con un'inclinazione pari a 1/2
  510.     if(v == 2)
  511.     {
  512.         cleardevice();
  513.         p[0] = p[0] - 10;
  514.         p[1] = p[1] - 5;
  515.         setcolor(LIGHTGREEN);
  516.         rectangle(a[0], a[1], a[2], a[3]);
  517.         outtextxy(10, 10, "Giocatore 1");
  518.         setcolor(LIGHTRED);
  519.         rectangle(b[0], b[1], b[2], b[3]);
  520.         outtextxy(1200, 10, "Giocatore 2");
  521.         setcolor(WHITE);
  522.         circle(p[0], p[1], 30);
  523.         rectangle(25, 39, 1255, 657);
  524.     }
  525.     // Se v = 3 allora la pallina va verso sinistra, con un'inclinazione pari a -1/2
  526.     if(v == 3)
  527.     {
  528.         cleardevice();
  529.         p[0] = p[0] - 10;
  530.         p[1] = p[1] + 5;
  531.         setcolor(LIGHTGREEN);
  532.         rectangle(a[0], a[1], a[2], a[3]);
  533.         outtextxy(10, 10, "Giocatore 1");
  534.         setcolor(LIGHTRED);
  535.         rectangle(b[0], b[1], b[2], b[3]);
  536.         outtextxy(1200, 10, "Giocatore 2");
  537.         setcolor(WHITE);
  538.         circle(p[0], p[1], 30);
  539.         rectangle(25, 39, 1255, 657);
  540.     }
  541.     // Se v = 4 allora la pallina va verso sinistra, con un'inclinazione elevata POSITIVA
  542.     if(v == 4)
  543.     {
  544.         cleardevice();
  545.         p[0] = p[0] - 5;
  546.         p[1] = p[1] + 8 ;
  547.         setcolor(LIGHTGREEN);
  548.         rectangle(a[0], a[1], a[2], a[3]);
  549.         outtextxy(10, 10, "Giocatore 1");
  550.         setcolor(LIGHTRED);
  551.         rectangle(b[0], b[1], b[2], b[3]);
  552.         outtextxy(1200, 10, "Giocatore 2");
  553.         setcolor(WHITE);
  554.         circle(p[0], p[1], 30);
  555.         rectangle(25, 39, 1255, 657);
  556.     }
  557.     // Se v = 5 allora la pallina va verso sinistra, con un'inclinazione elevata NEGATIVA
  558.     if(v == 5)
  559.     {
  560.         cleardevice();
  561.         p[0] = p[0] - 5;
  562.         p[1] = p[1] - 8;
  563.         setcolor(LIGHTGREEN);
  564.         rectangle(a[0], a[1], a[2], a[3]);
  565.         outtextxy(10, 10, "Giocatore 1");
  566.         setcolor(LIGHTRED);
  567.         rectangle(b[0], b[1], b[2], b[3]);
  568.         outtextxy(1200, 10, "Giocatore 2");
  569.         setcolor(WHITE);
  570.         circle(p[0], p[1], 30);
  571.         rectangle(25, 39, 1255, 657);
  572.     }
  573.     // Se v = 10 allora la pallina va dritta verso destra
  574.     if(v == 10)
  575.     {
  576.         cleardevice();
  577.         p[0] = p[0] + 10;
  578.         setcolor(LIGHTGREEN);
  579.         rectangle(a[0], a[1], a[2], a[3]);
  580.         outtextxy(10, 10, "Giocatore 1");
  581.         setcolor(LIGHTRED);
  582.         rectangle(b[0], b[1], b[2], b[3]);
  583.         outtextxy(1200, 10, "Giocatore 2");
  584.         setcolor(WHITE);
  585.         circle(p[0], p[1], 30);
  586.         rectangle(25, 39, 1255, 657);
  587.     }
  588.     // Se v = 11 allora la pallina va verso destra, con un'inclinazione pari a 1/2
  589.     if(v == 11)
  590.     {
  591.         cleardevice();
  592.         p[0] = p[0] + 10;
  593.         p[1] = p[1] - 5;
  594.         setcolor(LIGHTGREEN);
  595.         rectangle(a[0], a[1], a[2], a[3]);
  596.         outtextxy(10, 10, "Giocatore 1");
  597.         setcolor(LIGHTRED);
  598.         rectangle(b[0], b[1], b[2], b[3]);
  599.         outtextxy(1200, 10, "Giocatore 2");
  600.         setcolor(WHITE);
  601.         circle(p[0], p[1], 30);
  602.         rectangle(25, 39, 1255, 657);
  603.     }
  604.     // Se v = 12 allora la pallina va verso destra, con un'inclinazione pari a -1/2
  605.     if(v == 12)
  606.     {
  607.         cleardevice();
  608.         p[0] = p[0] + 10;
  609.         p[1] = p[1] + 5;
  610.         setcolor(LIGHTGREEN);
  611.         rectangle(a[0], a[1], a[2], a[3]);
  612.         outtextxy(10, 10, "Giocatore 1");
  613.         setcolor(LIGHTRED);
  614.         rectangle(b[0], b[1], b[2], b[3]);
  615.         outtextxy(1200, 10, "Giocatore 2");
  616.         setcolor(WHITE);
  617.         circle(p[0], p[1], 30);
  618.         rectangle(25, 39, 1255, 657);
  619.     }
  620.     // Se v = 13 allora la pallina va verso destra, con un'inclinazione elevata POSITIVA
  621.     if(v == 13)
  622.     {
  623.         cleardevice();
  624.         p[0] = p[0] + 5;
  625.         p[1] = p[1] - 8;
  626.         setcolor(LIGHTGREEN);
  627.         rectangle(a[0], a[1], a[2], a[3]);
  628.         outtextxy(10, 10, "Giocatore 1");
  629.         setcolor(LIGHTRED);
  630.         rectangle(b[0], b[1], b[2], b[3]);
  631.         outtextxy(1200, 10, "Giocatore 2");
  632.         setcolor(WHITE);
  633.         circle(p[0], p[1], 30);
  634.         rectangle(25, 39, 1255, 657);
  635.     }
  636.     // Se v = 14 allora la pallina va verso destra, con un'inclinazione elevata NEGATIVA
  637.     if(v == 14)
  638.     {
  639.         cleardevice();
  640.         p[0] = p[0] + 5;
  641.         p[1] = p[1] + 8;
  642.         setcolor(LIGHTGREEN);
  643.         rectangle(a[0], a[1], a[2], a[3]);
  644.         outtextxy(10, 10, "Giocatore 1");
  645.         setcolor(LIGHTRED);
  646.         rectangle(b[0], b[1], b[2], b[3]);
  647.         outtextxy(1200, 10, "Giocatore 2");
  648.         setcolor(WHITE);
  649.         circle(p[0], p[1], 30);
  650.         rectangle(25, 39, 1255, 657);
  651.     }
  652.     //Goal P2
  653.     if(p[0] < a[0]-80)
  654.     {
  655.         p2sc++;
  656.         cout << "Giocatore 2 segna! Punteggio attuale: " << p1sc << "-" << p2sc << "." << endl;
  657.         if(p2sc == maxscore)
  658.         {
  659.         cleardevice();
  660.         if (SFX == "On")
  661.         {
  662.         Beep(440, 250);
  663.         Beep(440, 250);
  664.         Beep(440, 250);
  665.         }
  666.         outtextxy(410, 350, "Partita terminata. Congratulazioni Giocatore 2! Hai vinto! Per continuare, vedere la console.");
  667.         Sleep(3000);
  668.         break;
  669.         }
  670.         if (SFX == "On")
  671.         {
  672.         Beep(500, 100);
  673.         }
  674.         outtextxy(440, 350, "Giocatore 2 segna! Palla al centro. Per continuare, vedere la console.");
  675.         system("PAUSE");
  676.         cleardevice();
  677.         outtextxy(570, 350, "Il prossimo round iniziera' in: 3");
  678.         Sleep(1000);
  679.         cleardevice();
  680.         outtextxy(550, 350, "Il prossimo round iniziera' in: 2");
  681.         Sleep(1000);
  682.         cleardevice();
  683.         outtextxy(550, 350, "Il prossimo round iniziera' in: 1");
  684.         a[1] = 298;
  685.         a[3] = 398;
  686.         b[1] = 298;
  687.         b[3] = 398;
  688.         p[0] = 620;
  689.         p[1] = 350;
  690.         setcolor(LIGHTGREEN);
  691.         rectangle(a[0], a[1], a[2], a[3]);
  692.         outtextxy(10, 10, "Giocatore 1");
  693.         setcolor(LIGHTRED);
  694.         rectangle(b[0], b[1], b[2], b[3]);
  695.         outtextxy(1200, 10, "Giocatore 2");
  696.         setcolor(WHITE);
  697.         circle(p[0], p[1], 30);
  698.         rectangle(25, 39, 1255, 657);
  699.         v = 1;
  700.     }
  701.     //Goal P1
  702.     if(p[0] > b[0]+80)
  703.     {
  704.         p1sc++;
  705.         cout << "Giocatore 1 segna! Punteggio attuale: " << p1sc << "-" << p2sc << "." << endl;
  706.         if(p1sc == maxscore)
  707.         {
  708.         cleardevice();
  709.         if (SFX == "On")
  710.         {
  711.         Beep(440, 250);
  712.         Beep(440, 250);
  713.         Beep(440, 250);
  714.         }
  715.         outtextxy(410, 350, "Partita terminata. Congratulazioni Giocatore 1! Hai vinto! Per continuare, vedere la console.");
  716.         Sleep(3000);
  717.         break;
  718.         }
  719.         if (SFX == "On")
  720.         {
  721.         Beep(500, 100);
  722.         }
  723.         outtextxy(440, 350, "Giocatore 1 segna! Palla al centro. Per continuare, vedere la console.");
  724.         system("PAUSE");
  725.         cleardevice();
  726.         outtextxy(550, 350, "Il prossimo round iniziera' in: 3");
  727.         Sleep(1000);
  728.         cleardevice();
  729.         outtextxy(550, 350, "Il prossimo round iniziera' in: 2");
  730.         Sleep(1000);
  731.         cleardevice();
  732.         outtextxy(550, 350, "Il prossimo round iniziera' in: 1");
  733.         a[1] = 298;
  734.         a[3] = 398;
  735.         b[1] = 298;
  736.         b[3] = 398;
  737.         p[0] = 620;
  738.         p[1] = 350;
  739.         setcolor(LIGHTGREEN);
  740.         rectangle(a[0], a[1], a[2], a[3]);
  741.         outtextxy(10, 10, "Giocatore 1");
  742.         setcolor(LIGHTRED);
  743.         rectangle(b[0], b[1], b[2], b[3]);
  744.         outtextxy(1200, 10, "Giocatore 2");
  745.         setcolor(WHITE);
  746.         circle(p[0], p[1], 30);
  747.         rectangle(25, 99, 1255, 651);
  748.         v = 10;
  749.     }
  750.      delay(25); //7
  751.     }
  752.     system("PAUSE");
  753.     closegraph();
  754.     main();
  755. }
  756.  
  757. //Guida
  758. void guida()
  759. {
  760.     string ind;
  761.     do
  762.     {
  763.     system("CLS");
  764.     system("COLOR B");
  765.     cout << "                                            Pong!" << endl << endl;
  766.     cout << "                                             Guida:" << endl << endl;
  767.     cout<<"I due giocatori devono respingere la palla per evitare di perdere il round."<< endl << endl << endl;
  768.     cout<<"Movimenti:"<<endl;
  769.     cout << endl << endl <<"I movimenti per ogni giocatore sono due: verso l'alto e verso il basso."<< endl << endl << endl;
  770.     cout<<"Impostazioni tastiera:"<< endl << endl;
  771.     cout <<"Giocatore 1: "<< endl << "'W' -> Movimento verso l'alto." << endl << "'S' -> Movimento verso il basso." << endl << endl;
  772.     cout <<"Giocatore 2: "<< endl << "Freccia su -> Movimento verso l'alto." << endl << "Freccia giu' -> Movimento verso il basso." << endl << endl;
  773.     cout << "[I]ndietro" << endl << endl;
  774.     cout << "Input richiesto (scrivere in maiuscolo): ";
  775.     cin >> ind;
  776.     }while(ind != "I");
  777.     main();
  778. }
  779.  
  780. void sett(int &maxscore, string &SFX)
  781. {
  782.     string scelta;
  783.   do
  784.    {
  785.     do
  786.     {
  787.     system("CLS");
  788.     system("COLOR A");
  789.     cout << "                                            Pong!" << endl << endl;
  790.     cout << "                                        Impostazioni:" << endl << endl;
  791.     cout << "[P]unteggio massimo: " << maxscore << "." << endl;
  792.     cout << endl;
  793.     cout << "[S]uoni (On/Off): " << SFX << "." << endl << endl;
  794.     cout << "[I]ndietro" << endl << endl;
  795.     cout << "Scegli il comando da cambiare (scrivi in maiuscolo cio' che trovi nelle parentesi): ";
  796.     cin >> scelta;
  797.     }while(scelta != "P" && scelta != "I" && scelta != "S");
  798.     if(scelta == "P")
  799.     {
  800.        do{
  801.        cout << "Scegli il nuovo punteggio massimo: ";
  802.        cin >> maxscore;
  803.        }while(maxscore < 1 || maxscore > 100);
  804.     }
  805.     if(scelta == "S")
  806.     {
  807.         do{
  808.         cout << "Impostazione suoni (scrivere On oppure Off): ";
  809.         cin >> SFX;
  810.         }while(SFX != "On" && SFX != "Off");
  811.     }
  812.   }while(scelta != "I");
  813.     cout << endl << "Impostazioni salvate. Ritorno al menu' principale in tre secondi.";
  814.     Sleep(2500);
  815.     main();
  816. }
  817.  
  818. void changelog()
  819. {
  820.     string scelta;
  821.     do
  822.     {
  823.     system("CLS");
  824.     system("COLOR 2");
  825.     cout << "                                            Pong!" << endl << endl;
  826.     cout << "                                         Changelog:" << endl << endl;
  827.     cout << "Versione 1.1 (Attuale): " << endl;
  828.     cout << "+ Aggiunti Suoni." << endl << "+ Aggiunta un'impostazione per disattivare gli effetti sonori." << endl;
  829.     cout << "+ Il menu' impostazioni e' un vero e proprio menu'!" << endl << "+ Modificate i vari menu e pagine." << endl;
  830.     cout << "+ Aggiunta pagina Changelog." << endl << "+ Modificato il sistema di scelta dei menu'." << endl << "+ Bug Fix Minori." << endl;
  831.     cout << endl;
  832.     cout << "Versione 1.0: " << endl;
  833.     cout << "+ Versione stabile del gioco.";
  834.     cout << endl << endl;
  835.     cout << "[I]ndietro";
  836.     cout << endl << endl;
  837.     cout << "Input Richiesto: ";
  838.     cin >> scelta;
  839.     }while(scelta != "I");
  840.     main();
  841. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement