Advertisement
Guest User

2048

a guest
Nov 14th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int a[4][4];
  9.  
  10. void mutareJos()
  11. {
  12.     int i,j,k;
  13.  
  14.      for(k=1; k<=4; k++)
  15.     for(i=3; i>=1; i--)
  16.         for(j=1; j<=4; j++)
  17.            if(a[i+1][j]==0)
  18.         {
  19.             a[i+1][j] = a[i][j];
  20.             a[i][j] = 0;
  21.         }
  22.  
  23.     for(i=3; i>=1; i--)
  24.         for(j=1; j<=4; j++)
  25.          if(a[i][j] == a[i+1][j])
  26.            {
  27.             a[i+1][j] = a[i+1][j] + a[i][j];
  28.             a[i][j] = 0;
  29.            }
  30.  
  31.            for(k=1; k<=4; k++)
  32.     for(i=3; i>=1; i--)
  33.         for(j=1; j<=4; j++)
  34.            if(a[i+1][j]==0)
  35.         {
  36.             a[i+1][j] = a[i][j];
  37.             a[i][j] = 0;
  38.         }
  39.  
  40. }
  41.  
  42. void mutareSus()
  43. {
  44.    int i,j,k;
  45.  
  46.      for(k=1; k<=4; k++)
  47.     for(i=1; i<=4; i++)
  48.         for(j=1; j<=4; j++)
  49.            if(a[i][j]==0)
  50.         {
  51.             a[i][j] = a[i+1][j];
  52.             a[i+1][j] = 0;
  53.         }
  54.  
  55.     for(i=1; i<=4; i++)
  56.         for(j=1; j<=4; j++)
  57.          if(a[i][j] == a[i+1][j])
  58.            {
  59.             a[i][j] = a[i+1][j] + a[i][j];
  60.             a[i+1][j] = 0;
  61.            }
  62.  
  63.             for(k=1; k<=4; k++)
  64.     for(i=1; i<=4; i++)
  65.         for(j=1; j<=4; j++)
  66.            if(a[i][j]==0)
  67.         {
  68.             a[i][j] = a[i+1][j];
  69.             a[i+1][j] = 0;
  70.         }
  71. }
  72.  
  73. void mutareStanga()
  74. {
  75. int i,j,k;
  76.  
  77.      for(k=1; k<=4; k++)
  78.         for(i=1; i<=4; i++)
  79.             for(j=1; j<=3; j++)
  80.            if(a[i][j]==0)
  81.         {
  82.             a[i][j] = a[i][j+1];
  83.             a[i][j+1] = 0;
  84.         }
  85.  
  86.     for(i=1; i<=4; i++)
  87.         for(j=1; j<=3; j++)
  88.          if(a[i][j] == a[i][j+1])
  89.            {
  90.             a[i][j] = a[i][j+1] + a[i][j];
  91.             a[i][j+1] = 0;
  92.            }
  93.  
  94.              for(k=1; k<=4; k++)
  95.         for(i=1; i<=4; i++)
  96.             for(j=1; j<=3; j++)
  97.            if(a[i][j]==0)
  98.         {
  99.             a[i][j] = a[i][j+1];
  100.             a[i][j+1] = 0;
  101.         }
  102. }
  103.  
  104. void mutareDreapta()
  105. {
  106. int i,j,k;
  107.  
  108.      for(k=1; k<=4; k++)
  109.         for(i=1; i<=4; i++)
  110.             for(j=4; j>=2; j--)
  111.            if(a[i][j]==0)
  112.         {
  113.             a[i][j] = a[i][j-1];
  114.             a[i][j-1] = 0;
  115.         }
  116.  
  117.     for(i=1; i<=4; i++)
  118.         for(j=4; j>=2; j--)
  119.          if(a[i][j] == a[i][j-1])
  120.            {
  121.             a[i][j] = a[i][j-1] + a[i][j];
  122.             a[i][j-1] = 0;
  123.            }
  124.  
  125.  
  126.             for(k=1; k<=4; k++)
  127.         for(i=1; i<=4; i++)
  128.             for(j=4; j>=2; j--)
  129.            if(a[i][j]==0)
  130.         {
  131.             a[i][j] = a[i][j-1];
  132.             a[i][j-1] = 0;
  133.         }
  134. }
  135.  
  136. int main()
  137. {
  138.     char x;
  139.     int i,j,nr1,nr2;
  140.  
  141.     HANDLE  hConsole;
  142.     hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  143.  
  144.     srand (time(NULL));
  145.     a[rand() % 4 + 1][ rand() % 4 + 1] = 2;
  146.     a[rand() % 4 + 1][ rand() % 4 + 1] = 2;
  147.  
  148.  
  149.     for(i=1; i<=4; i++)
  150.         {
  151.             for(j=1; j<=4; j++)
  152.                 if(a[i][j]==0)
  153.                     {
  154.                         SetConsoleTextAttribute(hConsole,10);
  155.                         cout<<"*"<<" ";
  156.                     }
  157.                 else
  158.                    {
  159.                        if(a[i][j]<=9)
  160.                        {
  161.                           SetConsoleTextAttribute(hConsole,6);
  162.                           cout<<a[i][j]<<" ";
  163.                        }
  164.  
  165.                        if((a[i][j]>=10)&&(a[i][j]<=99))
  166.                         {
  167.                              SetConsoleTextAttribute(hConsole,14);
  168.                             cout<<a[i][j]<<" ";
  169.                         }
  170.  
  171.  
  172.                         if((a[i][j]>=100)&&(a[i][j]<=999))
  173.                         {
  174.                              SetConsoleTextAttribute(hConsole,9);
  175.                             cout<<a[i][j]<<" ";
  176.                         }
  177.  
  178.                         if((a[i][j]>=1000)&&(a[i][j]<=10000))
  179.                         {
  180.                              SetConsoleTextAttribute(hConsole,12);
  181.                             cout<<a[i][j]<<" ";
  182.                         }
  183.                    }
  184.             cout<<endl;
  185.         }
  186.  
  187.     while(cin>>x)
  188.     {
  189.  
  190.         switch(x)
  191.         {
  192.         case 's':
  193.             mutareJos();
  194.             break;
  195.         case 'd':
  196.             mutareDreapta();
  197.             break;
  198.         case 'a':
  199.             mutareStanga();
  200.             break;
  201.         case 'w':
  202.             mutareSus();
  203.             break;
  204.         }
  205.  
  206.         nr1=rand() % 4 + 1;
  207.         nr2=rand() % 4 + 1;
  208.  
  209.         int k =0;
  210.        while(k==0)
  211.        {
  212.         if(a[nr1][nr2] == 0)
  213.         {
  214.             a[nr1][nr2] = 2;
  215.             k = 1;
  216.         }
  217.  
  218.         nr1=rand() % 4 + 1;
  219.         nr2=rand() % 4 + 1;
  220.        }
  221.  
  222.            system("cls");
  223.  
  224.          for(i=1; i<=4; i++)
  225.         {
  226.             for(j=1; j<=4; j++)
  227.                 if(a[i][j]==0)
  228.                     {
  229.                         SetConsoleTextAttribute(hConsole,10);
  230.                         cout<<"*"<<" ";
  231.                     }
  232.                 else
  233.                    {
  234.                        if(a[i][j]<=9)
  235.                        {
  236.                           SetConsoleTextAttribute(hConsole,6);
  237.                           cout<<a[i][j]<<" ";
  238.                        }
  239.  
  240.                        if((a[i][j]>=10)&&(a[i][j]<=99))
  241.                         {
  242.                              SetConsoleTextAttribute(hConsole,14);
  243.                             cout<<a[i][j]<<" ";
  244.                         }
  245.  
  246.  
  247.                         if((a[i][j]>=100)&&(a[i][j]<=999))
  248.                         {
  249.                              SetConsoleTextAttribute(hConsole,9);
  250.                             cout<<a[i][j]<<" ";
  251.                         }
  252.  
  253.                         if((a[i][j]>=1000)&&(a[i][j]<=10000))
  254.                         {
  255.                              SetConsoleTextAttribute(hConsole,12);
  256.                             cout<<a[i][j]<<" ";
  257.                         }
  258.                    }
  259.             cout<<endl;
  260.         }
  261.  
  262.     }
  263.     return 0;
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement