Advertisement
Guest User

Untitled

a guest
Oct 4th, 2012
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <Windows.h>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     HANDLE col = GetStdHandle(STD_OUTPUT_HANDLE);
  11.     SetConsoleTextAttribute(col, FOREGROUND_GREEN + FOREGROUND_BLUE + FOREGROUND_INTENSITY);
  12.     setlocale (LC_ALL, "Russian");
  13.  
  14.     int N, i, j, HOD=0;
  15.  
  16.     cout << "Размер поля(NxN): ";
  17.     cin >> N;
  18.     cout << "Поле: " << N << "x" << N;
  19.  
  20.     int DESK[N][N],
  21.         g[8]={1, 2, 2, 1, -1, -2, -2, -1},
  22.         v[8]={2, 1, -1, -2, -2, -1, 1, 2},
  23.         sum[8]={0, 0, 0, 0, 0, 0, 0, 0};
  24.  
  25.         for(i=0; i<N; i++)
  26.         for(j=0; j<N; j++)
  27.         DESK[i][j]=0;
  28.  
  29.             cout << endl << "Установите коня(i;j): ";
  30.             cin >> i >> j;
  31.             if(((i>=0) && (i<N)) && ((j>=0) && (j<N)))
  32.             DESK[i][j]=1;
  33.             else
  34.             {
  35.                 cout << "Ошыбка!";
  36.                 getch ();
  37.                 return 0;
  38.             }
  39. //================================================================================;
  40.  
  41.                     for(int o=0; o<8; o++)
  42.                     {
  43.                             i=i+g[o];
  44.                             j=j+v[o];
  45.  
  46.                                 if(((i>=0) && (i<N)) && ((j>=0) && (j<N)))
  47.                                     {
  48.                                         DESK[i][j]=1;
  49.                                         for(int y=0; y<8; y++)
  50.                                         {
  51.                                             i=i+g[y];
  52.                                             j=j+v[y];
  53.  
  54.                                                 if(((i>=0) && (i<N)) && ((j>=0) && (j<N)) && DESK[i][j]!=1)
  55.                                                 sum[o]++;
  56.                                                 i=i-g[y];
  57.                                                 j=j-v[y];
  58.                                         }
  59.                             }
  60.                                         DESK[i][j]=0;
  61.                                         i=i-g[o];
  62.                                         j=j-v[o];
  63.                          cout << endl << sum[o];
  64.                         }
  65.  
  66.                                 int Q = sizeof(sum) / sizeof(sum[0]);
  67.                                 int mx = *max_element(sum, sum + Q);
  68.  
  69.                                     for(int p=0; p<8; p++)
  70.                                     {
  71.                                         if(mx==sum[p])
  72.                                         {
  73.                                             i=i+g[p];
  74.                                             j=j+v[p];
  75.                                             DESK[i][j]=1;
  76.                                             HOD++;
  77.                                             cout << endl << "|" << i << ";" << j <<"|" << endl;
  78.                                             break;
  79.                                         }
  80.                                     }
  81. //=================================================
  82.     for(i=0; i<N; i++)
  83.     {
  84.          for(j=0; j<N; j++)
  85.          {
  86.             cout << "\t" << DESK[i][j];
  87.          }
  88.             cout << "\n";
  89.     }
  90. cout << endl << "Максимально можно сделать " << HOD << " ходов";
  91.     getch ();
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement