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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Текст и числа в одной переменной http://www.cyberforum.ru/cpp-beginners/thread268808.html
Как организовать следующее: программа просит пользователя ввести имя файла (имя может содержать цифры), потом к этому имени прибавляется какое - либо число или строка, или символ. После этого программе говориться чтобы она записала такой-то (исходя) файл на диск Д. #include<iostream> #include<fstream> #include<string> using namespace std; int main() {setlocale(LC_ALL, "Russian");
C++ Пузырьковая сортировка Здравствуйте хочу разобраться в сортировках....нашла пример в книге.....но почему то она не работает....если не сложно объясните ошибки.спасибо // пузырьковая сортитровка.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <conio.h> #include "iostream" using namespace std; http://www.cyberforum.ru/cpp-beginners/thread268807.html
C++ Не могу разобраться с отработкой циклов
Есть код:#include <iostream> #include <stdio.h> #include <conio.h> #include <string.h> #define SIZE1 21 #define SIZE2 60 using namespace std; void print(char ar) { int i = 1;
C++ Строка в стиле С
Чем отличается строка в стиле классического С и С++?
C++ наследование http://www.cyberforum.ru/cpp-beginners/thread268784.html
Задача : Базовый класс: class Shape2D { public: Shape2D(); virtual ~ Shape2D(); virtual float Area( )= 0; virtual float Perimeter() = 0; virtual void PrintMessage();
C++ Матрица 2.3) Дана квадратная матрица.Поменять последние элементы каждого столбца с элементами главной диагонали. подробнее

Показать сообщение отдельно
Andrew_ku
0 / 0 / 0
Регистрация: 02.04.2011
Сообщений: 31
02.04.2011, 13:52     Не работает проверка по побочной диагонали!
Очень нужна помощь! Я пишу крестики нолики на большом поле(там до 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);
                                 }
                            }
                        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru