Форум программистов, компьютерный форум CyberForum.ru

Не работает проверка по побочной диагонали! - C++

Восстановить пароль Регистрация
 
Andrew_ku
0 / 0 / 0
Регистрация: 02.04.2011
Сообщений: 31
02.04.2011, 13:52     Не работает проверка по побочной диагонали! #1
Очень нужна помощь! Я пишу крестики нолики на большом поле(там до 5 вряд) и застрял на проверке победы.
У меня проверяет на победу по горизонтали, вертикали и главной диагонали , А ПО ПОБОЧНОЙ ПОЧЕМУ-ТО НЕ РАБОТАЕТ. Никак не могу понять почему. Помогите пожалуйста!! Очень надо.
Мое поле это двумерный массив POLE[15][15]. Где Нулевый столбец и строка заняты нумерацией.

Вот код на проверку по главной(который работает) и по побочной(который не пашет):

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//Проверка на победу-----------------------------------------------------
void Win( char POLE[M][N],int hod)
{   
    
    
    switch(hod%2)
    {
// для ПЕрвого игрока==============================================================
    case 0:
            for(int i=1;i<M;i++)
            for(int j=1;j<N;j++)
              {
                if(POLE[i][j]=='X')
                  {
                      
//ПРоверка по главной диагонали ====================================================================
                     int Vgran_i=i-4,Ngran_i=i+4; // Границы для проверки по i
                     int Lgran_j=j-4,Rgran_j=j+4; // Границы для проверки по j
                     int k=0;                     // Счетчик определяющий победу
                     
 
                    
                         for(Vgran_i,Lgran_j;Vgran_i<=Ngran_i && Lgran_j<=Rgran_j;Vgran_i++,Lgran_j++)
                         {
                             if(Vgran_i>0 && Ngran_i<16 && Lgran_j>0 && Rgran_j<16)
                             {
                               if(POLE[i][j]==POLE[Vgran_i][Lgran_j])
                                k++;
                               else k=0;
                               if(k==5)
                                 {
                                   cout<<"Plaeyr1 WIN";
                                   getch();exit(2);
                                 }
                             }
                        }
 
    //ПРоверка по побочной диагонали ======================================================
                        for(Vgran_i,Rgran_j;Vgran_i<=Ngran_i && Lgran_j<=Rgran_j; Vgran_i++,Rgran_j--  )
                        {   
 
                            if(Vgran_i>0 && Ngran_i<16 && Lgran_j>0 && Rgran_j<16)
                            {
                                if(POLE[i][j]==POLE[Vgran_i][Rgran_j])
                                  k++;
                                else k=0;
                                
                                if(k==5)
                                 {
                                   cout<<"Plaeyr1 WIN";
                                   getch();exit(2);
                                 }
                            }
                        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 13:52     Не работает проверка по побочной диагонали!
Посмотрите здесь:

C++ Разместить на побочной диагонали матрицы суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной.
C++ Заменить каждый нулевой элемент главной диагонали матрицы максимальным элементом побочной диагонали
Проверка матрицы на симетричность относительно побочной диагонали C++
C++ Найти произведение максимального элемента главной диагонали на минимальный элемент побочной диагонали
Среди элементов ниже побочной диагонали, найти количество меньших, чем любой элемент над побочной диагональю C++
C++ Вычислить среднее арифметическое побочной диагонали матрицы, и заменить им элементы ниже главной диагонали
Заменить элементы главной диагонали суммами элементов их строк стоящих выше побочной диагонали C++
Обменять элементы массива на главной диагонали с элементами на побочной диагонали C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru