Показать сообщение отдельно
Старый 12.08.2007, 00:08   #14
Alex_90
Знающий
 
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение
(для 2 участников)
Re: Алгоритм игры Lines

ВСЕМ, ВСЕМ, ВСЕМ!
Привет всем.
Может, кто знает, почему ниже приведенный цикл, исспользуемый мной для поиска собранных линий и их удаления выполняется до бесконечности! Вроде бы я все проверил: явных ерроров нет. Дебаггер при проходе этого цикла выдает следующее:

First-chance exception in 3D Lines 2007.exe (GDI32.DLL): 0xC0000005: Access Violation.
А вот и сам цикл:

//Проверяем наличае собранных линий в колличестве 5 и более int vsp; //По горизонтали вправо for (i1=1;i1<14;i1++) { for (int i2=1;i2<14;i2++) { if (g[i1][i2]==g[i1+1][i2]==g[i1+2][i2]==g[i1+3][i2]==g[i1+4][i2]&&g[i1][i2]!=0&&g[i1+1][i2]!=0&&g[i1+2][i2]!=0&&g[i1+3][i2]!=0&&g[i1+4][i2]!=0)//Найдена линия из 5 шаров { vsp=g[i1][i2];//Получаем в переменную vsp тип шариков //Присваиваим этим клеткам значение "0", то есть удаляем шары g[i1][i2]=g[i1+1][i2]=g[i1+2][i2]=g[i1+3][i2]=g[i1+4][i2]=0; //А может в линии шаров больше, чем пять? Проверим и это! for (int p=5;p<14;p++) { if (g[i1+p][i2]==vsp); { g[i1+p][i2]=0;//Удаляем и этот шар. } if (g[i1+p][i2]!=vsp); { break; } } } } }
(Offline)
 
Ответить с цитированием