Создание компьютерной игры "Крестики и нолики"
Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.05.2014 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
for ( i=1; i<=31 ; i++ ) {k=0;
if( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 1 && pDoc->GetSquare ( i+3, j-3) == 0 && pDoc->GetSquare ( i-1, j+1) == 0 )
{a+=2;m_dop[1][a-1]=i+1;m_dop[2][a-1]=j-1;m_dop[3][a-1]=0;m_dop[4][a-1]=0;
m_dop[1][a]=i-1;m_dop[2][a]=j+1;m_dop[3][a]=i+3;m_dop[4][a]=j-3;}
if( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i-1, j+1) == 1 ){
if (pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 0 ){a++;m_dop[1][a]=i+2;m_dop[2][a]=j-2;m_dop[3][a]=i+3;m_dop[4][a]=j-3;}
if (pDoc->GetSquare ( i-2, j+2) == 0 && pDoc->GetSquare ( i-3, j+3) == 0 ){a++;m_dop[1][a]=i-2;m_dop[2][a]=j+2;m_dop[3][a]=i-3;m_dop[4][a]=j+3;}}
if( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 1 && (pDoc->GetSquare ( i+3, j-3) == 1 || pDoc->GetSquare ( i-1, j+1) == 1 ) && pDoc->GetSquare ( i+4, j-4) == 0 && pDoc->GetSquare ( i-2, j+2) == 0) {o++;m_rez[1][o]=i+1;m_rez[2][o]=j-1;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 0 && pDoc->GetSquare ( i-2, j+2) == 0 && pDoc->GetSquare ( i-1, j+1) == 0 )
{r+=2;m_dopdop[1][r-1]=i+1;m_dopdop[2][r-1]=j-1;m_dopdop[3][r-1]=i-1;m_dopdop[4][r-1]=j+1; m_dopdop[1][r]=i+2;m_dopdop[2][r]=j-2;m_dopdop[3][r]=i-2;m_dopdop[4][r]=j+2;}
if( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i-1, j+1) == 1 && pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 1 && pDoc->GetSquare ( i+3, j-3) == 1)
{o++;m_rez[1][o]=i+1;m_rez[2][o]=j-1;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>1){y=1;}}
for ( j1=j,i1=i,f=0; f<4 ;f++,j1--,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 1 ){ k++;
if(k==4){k=0;if(pDoc->GetSquare (i1+1, j1-1)==0) {o++;m_rez[1][o]=i1+1;m_rez[2][o]=j1-1;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>1){y=1;}}
if(pDoc->GetSquare (i1-4, j1+4)==0){o++;m_rez[1][o]=i1-4;m_rez[2][o]=j1+4 ;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>1){y=1;}}}}
else k=0;}}}
for ( i=1; i<=31 ; i++) { k=0;
for ( j=1; j<=15 ; j++) {
if ( pDoc->GetSquare ( i, j) == 1 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i,j+1)!=2 && (pDoc->GetSquare(i,j-3)!=2||pDoc->GetSquare(i,j-4)!=2))
||(pDoc->GetSquare(i,j-3)!=2 && (pDoc->GetSquare(i,j+1)!=2||pDoc->GetSquare(i,j+2)!=2))){
if(pDoc->GetSquare(i,j+2)==1 && pDoc->GetSquare(i,j+1)==0){o++;m_rez[1][o]=i;m_rez[2][o]=j+1;m_rez[3][o]=0;m_rez[4][o]=0;
if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i,j-4)==1 && pDoc->GetSquare(i,j-3)==0) {o++;m_rez[1][o]=i;m_rez[2][o]=j-3;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i,j+1)==0 && pDoc->GetSquare(i,j-3)==0) {o++;m_rez[1][o]=i;m_rez[2][o]=j-3;m_rez[3][o]=i;m_rez[4][o]=j+1;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i,j+1)==2 && pDoc->GetSquare(i,j-3)==0 &&
pDoc->GetSquare(i,j-4)==0)
{a++;m_dop[1][a]=i;m_dop[2][a]=j-3;m_dop[3][a]=i;m_dop[4][a]=j-4;}
if(pDoc->GetSquare(i,j+1)==0 && pDoc->GetSquare(i,j-3)==2 &&
pDoc->GetSquare(i,j+2)==0){a++;m_dop[1][a]=i;m_dop[2][a]=j+1;m_dop[3][a]=i;m_dop[4][a]=j+2;}}}}
else k=0;}}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) {
if ( pDoc->GetSquare ( i, j) == 1 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i+1,j)!=2 && (pDoc->GetSquare(i-3,j)!=2
||pDoc->GetSquare(i-4,j)!=2)) ||(pDoc->GetSquare(i-3,j)!=2 && (pDoc->GetSquare(i+1,j)!=2
||pDoc->GetSquare(i+2,j)!=2))){ if(pDoc->GetSquare(i+2,j)==1
&& pDoc>GetSquare(i+1,j)==0)
{o++;m_rez[1][o]=i+1;m_rez[2][o]=j;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i-4,j)==1 && pDoc->GetSquare(i-3,j)==0){o++;m_rez[1][o]=i-3; m_rez[2][o]=j; m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i+1,j)==0 && pDoc->GetSquare(i-3,j)==0){o++;m_rez[1][o]=i-3; m_rez[2][o]=j;m_rez[3][o]=i+1;m_rez[4][o]=j;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i+1,j)==2 && pDoc->GetSquare(i-3,j)==0 &&
pDoc->GetSquare(i-4,j)==0)
{a++;m_dop[1][a]=i-3;m_dop[2][a]=j;m_dop[3][a]=i-4;m_dop[4][a]=j;}
if(pDoc->GetSquare(i+1,j)==0 && pDoc->GetSquare(i-3,j)==2 &&
pDoc->GetSquare(i+2,j)==0)
{a++;m_dop[1][a]=i+1;m_dop[2][a]=j;m_dop[3][a]=i+2;m_dop[4][a]=j;}}}}
else k=0;}}
for ( j1=1; j1<=15 ; j1++) {
for ( i1=1; i1<=31 ; i1++ ) {k=0;
for ( j=j1,i=i1,f=0; f<3 ;f++ ){j++;i++;
if ( pDoc->GetSquare ( i, j) == 1 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i+1,j+1)!=2 && (pDoc->GetSquare(i-3,j-3)!=2
||pDoc->GetSquare(i-4,j-4)!=2)) ||(pDoc->GetSquare(i-3,j-3)!=2 &&
(pDoc->GetSquare(i+1,j+1)!=2||pDoc->GetSquare(i+2,j+2)!=2))){
if(pDoc->GetSquare(i+2,j+2)==1 && pDoc->GetSquare(i+1,j+1)==0) {o++;m_rez[1][o]=i+1;m_rez[2][o]=j+1;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i-4,j-4)==1 && pDoc->GetSquare(i-3,j-3)==0){o++;m_rez[1][o]=i-3; m_rez[2][o]=j-3;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i+1,j+1)==0 && pDoc->GetSquare(i-3,j-3)==0){o++;m_rez[1][o]=i-3; m_rez[2][o]=j-3;m_rez[3][o]=i+1;m_rez[4][o]=j+1;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i+1,j+1)==2 && pDoc->GetSquare(i-3,j-3)==0 &&
pDoc->GetSquare(i-4,j-4)==0)
{a++;m_dop[1][a]=i-3;m_dop[2][a]=j-3;m_dop[3][a]=i-4;m_dop[4][a]=j-4;}
if(pDoc->GetSquare(i+1,j+1)==0 && pDoc->GetSquare(i-3,j-3)==2 &&
pDoc->GetSquare(i+2,j+2)==0) {a++;m_dop[1][a]=i+1;m_dop[2][a]=j+1;m_dop[3][a]=i+2;m_dop[4][a]=j+2;} }}}
else k=0;}}}
for ( j=1; j<=15 ; j++) {
for ( i=1; i<=31 ; i++ ) {k=0;
for ( j1=j,i1=i,f=0; f<3 ;f++ ,j1--,i1++){
if ( pDoc->GetSquare ( i1, j1) == 1 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i1+1,j1-1)!=2 && (pDoc->GetSquare(i1-3,j1+3)!=2
||pDoc->GetSquare(i1-4,j1+4)!=2)) ||(pDoc->GetSquare(i1-3,j1+3)!=2 &&
(pDoc->GetSquare(i1+1,j1-1)!=2||pDoc->GetSquare(i1+2,j1-2)!=2))){
if(pDoc->GetSquare(i1+2,j1-2)==1 && pDoc->GetSquare(i1+1,j1-1)==0) {o++;m_rez[1][o]=i1+1;m_rez[2][o]=j1-1;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i1-4,j1+4)==1 && pDoc->GetSquare(i1-3,j1+3)==0) {o++;m_rez[1][o]=i1-3;m_rez[2][o]=j1+3;m_rez[3][o]=0;m_rez[4][o]=0;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i1+1,j1-1)==0 && pDoc->GetSquare(i1-3,j1+3)==0){o++;m_rez[1][o]=i1-3;m_rez[2][o]=j1+3;m_rez[3][o]=i1+1;m_rez[4][o]=j1-1;if(y==0||y>2){y=2;}}
if(pDoc->GetSquare(i1+1,j1-1)==2 && pDoc->GetSquare(i1-3,j1+3)==0 &&
pDoc->GetSquare(i1-4,j1+4)==0)
{a++;m_dop[1][a]=i1-3;m_dop[2][a]=j1+3;m_dop[3][a]=i1-4;m_dop[4][a]=j1+4;}
if(pDoc->GetSquare(i1+1,j1-1)==0 && pDoc->GetSquare(i1-3,j1+3)==2 &&
pDoc->GetSquare(i1+2,j1-2)==0)
{a++;m_dop[1][a]=i1+1;m_dop[2][a]=j1-1;m_dop[3][a]=i1+2;m_dop[4][a]=j1-2;}}}}
else k=0;}}}
for ( i=1; i<=31 ; i++) { k=0;
for ( j=1; j<=15 ; j++) {
if ( pDoc->GetSquare ( i, j) == 1 ){ k++;
if(k==5){kon=2;}}
else k=0;}}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) {
if ( pDoc->GetSquare ( i, j) == 1 ){ k++;
if(k==5){kon=2;}}
else k=0; }}
for ( j=1; j<=15 ; j++) {
for ( i=1; i<=31 ; i++) { k=0;
for ( j1=j,i1=i,f=0; f<5 ;f++,j1++,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 1 ){ k++;
if(k==5){kon=2;}}
else k=0;}
for ( j1=j,i1=i,f=0; f<5 ;f++,j1--,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 1 ){ k++;
if(k==5){kon=2;}}}}}
if(kon==2){MessageBox ("You are Win!");//pDoc->OnNewDocument(); }
for (i=1; i<5 ; i++){
for (j=1;j<200;j++){
m_rezkomp[i][j]=0;m_dopkomp[i][j]=0;m_dopdopkomp[i][j]=0;}}
for ( i=1; i<=31 ; i++) { k=0;
for ( j=1; j<=15 ; j++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==4){if( pDoc->GetSquare ( i, j+1) == 0) {oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i, j-4) == 0) {oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j-4; m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}
if( pDoc->GetSquare ( i, j-1) == 2 && pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i, j+1) == 0 && pDoc->GetSquare ( i, j+2) == 2 && pDoc->GetSquare ( i, j+3) == 2)
{oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i, j-1) == 2 ){
if (pDoc->GetSquare ( i, j+1) == 0 && pDoc->GetSquare ( i, j+2) == 0 ){aa++;m_dop[1][aa]=i;m_dop[2][aa]=j+2;m_dop[3][aa]=i;m_dop[4][aa]=j+3;}
if (pDoc->GetSquare ( i, j-2) == 0 && pDoc->GetSquare ( i, j-3) == 0 ){aa++;m_dop[1][aa]=i;m_dop[2][aa]=j-2;m_dop[3][aa]=i;m_dop[4][aa]=j-3;}}
if( pDoc->GetSquare ( i, j+1) == 0 && pDoc->GetSquare ( i, j+2) == 2 &&
(pDoc->GetSquare ( i, j+3) == 2 || pDoc->GetSquare ( i, j-1) == 2 ) && pDoc->GetSquare ( i, j+4) == 0 && pDoc->GetSquare ( i, j-2) == 0)
{oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if( pDoc->GetSquare ( i, j+1) == 0 && pDoc->GetSquare ( i, j+2) == 2 &&
pDoc->GetSquare ( i, j+3) == 0 && pDoc->GetSquare ( i, j-1) == 0 )
{aa+=2;m_dopkomp[1][aa-1]=i;m_dopkomp[2][aa-1]=j+1;m_dopkomp[3][aa-1]=0; m_dopkomp[4][aa-1]=0;m_dopkomp[1][aa]=i;m_dopkomp[2][aa]=j-1; m_dopkomp[3][aa]=i;m_dopkomp[4][aa]=j+3;}
if( pDoc->GetSquare ( i, j+1) == 0 && pDoc->GetSquare ( i, j+2) == 0 &&
pDoc->GetSquare ( i, j-2) == 0 && pDoc->GetSquare ( i, j-1) == 0 )
{rr+=2;m_dopdopkomp[1][rr-1]=i;m_dopdopkomp[2][rr-1]=j+1;
m_dopdopkomp[3][rr-1]=i;m_dopdopkomp[4][rr-1]=j-1; m_dopdopkomp[1][rr]=i;m_dopdopkomp[2][rr]=j+2;m_dopdopkomp[3][rr]=i;
m_dopdopkomp[4][rr]=j-2;}}
else k=0;}}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==4){if( pDoc->GetSquare ( i+1, j) == 0) {oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i-4, j) == 0) {oo++;m_rezkomp[1][oo]=i-4; m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i-1, j) == 2 &&
pDoc->GetSquare ( i+1, j) == 0 && pDoc->GetSquare ( i+2, j) == 2 &&
pDoc->GetSquare ( i+3, j) == 2)
{oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i-1, j) == 2 ){
if (pDoc->GetSquare ( i+1, j) == 0 && pDoc->GetSquare ( i+2, j) == 0 ) {aa++;m_dop[1][aa]=i+2;m_dop[2][aa]=j;m_dop[3][aa]=i+3;m_dop[4][aa]=j;}
if (pDoc->GetSquare ( i-2, j) == 0 && pDoc->GetSquare ( i-3, j) == 0 )
{aa++;m_dop[1][aa]=i-2;m_dop[2][aa]=j;m_dop[3][aa]=i-3;m_dop[4][aa]=j;}}
if( pDoc->GetSquare ( i+1, j) == 0 && pDoc->GetSquare ( i+2, j) == 2 &&
(pDoc->GetSquare ( i+3, j) == 2 || pDoc->GetSquare ( i-1, j) == 2 ) &&
pDoc->GetSquare ( i+4, j) == 0 && pDoc->GetSquare ( i-2, j) == 0)
{oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if( pDoc->GetSquare ( i+1, j) == 0 && pDoc->GetSquare ( i+2, j) == 2 &&
pDoc->GetSquare ( i+3, j) == 0 && pDoc->GetSquare ( i-1, j) == 0 )
{aa+=2;m_dopkomp[1][aa-1]=i+1;m_dopkomp[2][aa-1]=j;m_dopkomp[3][aa-1]=0 ; m_dopkomp[4][aa-1]=0; m_dopkomp[1][aa]=i-1;m_dopkomp[2][aa]=j; m_dopkomp[3][aa]=i+3;m_dopkomp[4][aa]=j;}
if( pDoc->GetSquare ( i+1, j) == 0 && pDoc->GetSquare ( i+2, j) == 0 && pDoc->GetSquare ( i-1, j) == 0 && pDoc->GetSquare ( i-2, j) == 0 )
{rr+=2;m_dopdopkomp[1][rr-1]=i+1;m_dopdopkomp[2][rr-1]=j;
m_dopdopkomp[3][rr-1]=i-1;m_dopdopkomp[4][rr-1]=j; m_dopdopkomp[1][rr]=i+2; m_dopdopkomp[2][rr]=j;m_dopdopkomp[3][rr]=i-2;m_dopdopkomp[4][rr]=j;}}
else k=0;}}
for ( j=1; j<=15 ; j++) { k=0;
for ( i=1; i<=31 ; i++ ) {k=0;
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j+1) == 0 &&
pDoc->GetSquare ( i+2, j+2) == 2 && pDoc->GetSquare ( i+3, j+3) == 0 &&
pDoc->GetSquare ( i-1, j-1) == 0 )
{aa+=2;m_dopkomp[1][aa-1]=i+1;m_dopkomp[2][aa-1]=j+1;m_dopkomp[3][aa-1]=0; m_dopkomp[4][aa-1]=0; m_dopkomp[1][aa]=i-1;m_dopkomp[2][aa]=j-1; m_dopkomp[3][aa]=i+3;m_dopkomp[4][aa]=j+3;}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i-1,j-1) == 2 ){
if (pDoc->GetSquare ( i+1, j+1) == 0 && pDoc->GetSquare ( i+2, j+2) == 0 ) {aa++;m_dop[1][aa]=i+2;m_dop[2][aa]=j+2;m_dop[3][aa]=i+3;m_dop[4][aa]=j+3;}
if (pDoc->GetSquare ( i-2, j-2) == 0 && pDoc->GetSquare ( i-3, j-3) == 0 ) {aa++;m_dop[1][aa]=i-2;m_dop[2][aa]=j-2;m_dop[3][aa]=i-3;m_dop[4][aa]=j-3;}}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j+1) == 0 &&
pDoc->GetSquare ( i+2, j+2) == 0 && pDoc->GetSquare ( i-2, j-2) == 0 &&
pDoc->GetSquare ( i-1, j-1) == 0 )
{rr+=2;m_dopdopkomp[1][rr-1]=i+1;m_dopdopkomp[2][rr-1]=j+1;
m_dopdopkomp[3][rr-1]=i-1; m_dopdopkomp[4][rr-1]=j-1; m_dopdopkomp[1][rr]=i+2; m_dopdopkomp[2][rr]=j+2;m_dopdopkomp[3][rr]=i-2;m_dopdopkomp[4][rr]=j-2;}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j+1) == 0 &&
pDoc->GetSquare ( i+2, j+2) == 2 && (pDoc->GetSquare ( i+3, j+3) == 2
|| pDoc->GetSquare ( i-1, j-1) == 2 ) && pDoc->GetSquare ( i+4, j+4) == 0 &&
pDoc->GetSquare ( i-2, j-2) == 0)
{oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j+1;m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
for ( j1=j,i1=i,f=0; f<4 ;f++,j1++,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;
if(k==4){k=0;if( pDoc->GetSquare ( i1+1, j1+1)==0) {oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i1-4, j1-4)==0) {oo++;m_rezkomp[1][oo]=i1-4;
m_rezkomp[2][oo]=j1-4;m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}
if(k==2){if( pDoc->GetSquare ( i1+1, j1+1) == 0 && pDoc->GetSquare ( i1+2, j1+2) == 2
&& pDoc->GetSquare ( i1+3, j1+3) == 2)
{oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}}
else k=0;}}}
for ( j=1; j<=15 ; j++) {
for ( i=1; i<=31 ; i++ ) {k=0;
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j-1) == 0 &&
pDoc->GetSquare ( i+2, j-2) == 2 && pDoc->GetSquare ( i+3, j-3) == 0 &&
pDoc->GetSquare ( i-1, j+1) == 0 )
{aa+=2;m_dopkomp[1][aa-1]=i+1;m_dopkomp[2][aa-1]=j-1;m_dopkomp[3][aa-1]=0; m_dopkomp[4][aa-1]=0;
m_dopkomp[1][aa]=i-1;m_dopkomp[2][aa]=j+1;m_dopkomp[3][aa]=i+3;
m_dopkomp[4][aa]=j-3;}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i-1, j+1) == 2 ){
if (pDoc->GetSquare ( i+1, j-1) == 0 && pDoc->GetSquare ( i+2, j-2) == 0 ) {aa++;m_dop[1][aa]=i+2;m_dop[2][aa]=j-2;m_dop[3][aa]=i+3;m_dop[4][aa]=j-3;}
if (pDoc->GetSquare ( i-2, j+2) == 0 && pDoc->GetSquare ( i-3, j+3) == 0 ) {aa++;m_dop[1][aa]=i-2;m_dop[2][aa]=j+2;m_dop[3][aa]=i-3;m_dop[4][aa]=j+3;}}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j-1) == 0 &&
pDoc->GetSquare ( i+2, j-2) == 0 && pDoc->GetSquare ( i-2, j+2) == 0 &&
pDoc->GetSquare ( i-1, j+1) == 0 ) {rr+=2;m_dopdopkomp[1][rr-1]=i+1;
m_dopdopkomp[2][rr-1]=j-1;m_dopdopkomp[3][rr-1]=i-1;m_dopdopkomp[4][rr-1]=j+1; m_dopdopkomp[1][rr]=i+2;m_dopdopkomp[2][rr]=j-2;m_dopdopkomp[3][rr]=i-2; m_dopdopkomp[4][rr]=j+2;}
if( pDoc->GetSquare ( i, j) == 2 && pDoc->GetSquare ( i+1, j-1) == 0 &&
pDoc->GetSquare ( i+2, j-2) == 2 && (pDoc->GetSquare ( i+3, j-3) == 2
|| pDoc->GetSquare ( i-1, j+1) == 2 ) && pDoc->GetSquare ( i+4, j-4) == 0
&& pDoc->GetSquare ( i-2, j+2) ==
{oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j-1; m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;
for ( j1=j,i1=i,f=0; f<4 ;f++ ,j1--,i1++){
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;
if(k==4){k=0;if( pDoc->GetSquare ( i1+1, j1-1)==0) {oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1-1;m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}
if( pDoc->GetSquare ( i1-4, j1+4)==0) {oo++;m_rezkomp[1][oo]=i1-4; m_rezkomp[2][oo]=j1+4;m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}
if(k==2){if( pDoc->GetSquare ( i1+1, j1-1) == 0 && pDoc->GetSquare ( i1+2, j1-2) == 2
&& pDoc->GetSquare ( i1+3, j1-3) == 2)
{oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1-1; m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>1){yy=1;}}}}
else k=0;}}}
for ( i=1; i<=31 ; i++) { k=0;
for ( j=1; j<=15 ; j++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i,j+1)!=1 && (pDoc->GetSquare(i,j-3)!=1||pDoc->GetSquare(i,j-4)!=1)) ||(pDoc->GetSquare(i,j-3)!=1 && (pDoc->GetSquare(i,j+1)!=1
||pDoc->GetSquare(i,j+2)!=1))){
if(pDoc->GetSquare(i,j+2)==2 && pDoc->GetSquare(i,j+1)==0) {oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j+1;m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i,j-4)==2 && pDoc->GetSquare(i,j-3)==0) {oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j-3; m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i,j+1)==0 && pDoc->GetSquare(i,j-3)==0) {oo++;m_rezkomp[1][oo]=i;m_rezkomp[2][oo]=j-3;m_rezkomp[3][oo]=i; m_rezkomp[4][oo]=j+1;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i,j+1)==1 && pDoc->GetSquare(i,j-3)==0 &&
pDoc->GetSquare(i,j-4)==0)
{aa++;m_dopkomp[1][aa]=i;m_dopkomp[2][aa]=j-3;m_dopkomp[3][aa]=i; m_dopkomp[4][aa]=j-4;}
if(pDoc->GetSquare(i,j+1)==0 && pDoc->GetSquare(i,j-3)==1 &&
pDoc->GetSquare(i,j+2)==0)
{aa++;m_dopkomp[1][aa]=i;m_dopkomp[2][aa]=j+1;m_dopkomp[3][aa]=i;
m_dopkomp[4][aa]=j+2;}}}}
else k=0;}}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i+1,j)!=1 && (pDoc->GetSquare(i-3,j)!=1||
pDoc->GetSquare(i-4,j)!=1)) ||(pDoc->GetSquare(i-3,j)!=1 &&
(pDoc->GetSquare(i+1,j)!=2||pDoc->GetSquare(i+2,j)!=1))){
if(pDoc->GetSquare(i+2,j)==2 && pDoc->GetSquare(i+1,j)==0) {oo++;m_rezkomp[1][oo]=i+1;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i-4,j)==2 && pDoc->GetSquare(i-3,j)==0)
{oo++;m_rezkomp[1][oo]=i3;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=0;m_
rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i+1,j)==0 && pDoc->GetSquare(i-3,j)==0)
{oo++;m_rezkomp[1][oo]=i3;m_rezkomp[2][oo]=j;m_rezkomp[3][oo]=i+1;
m_rezkomp[4][oo]=j;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i+1,j)==1 && pDoc->GetSquare(i-3,j)==0 &&
pDoc->GetSquare(i-4,j)==0)
{aa++;m_dopkomp[1][aa]=i-3;m_dopkomp[2][aa]=j;m_dopkomp[3][aa]=i-4; m_dopkomp[4][aa]=j;}
if(pDoc->GetSquare(i+1,j)==0 && pDoc->GetSquare(i-3,j)==1 &&
pDoc->GetSquare(i+2,j)==0)
{aa++;m_dopkomp[1][aa]=i+1;m_dopkomp[2][aa]=j;m_dopkomp[3][aa]=i+2;
m_dopkomp[4][aa]=j;}}}}
else k=0;}}
for ( j=1; j<=15 ; j++) {
for ( i=1; i<=31 ; i++ ) {k=0;
for ( j1=j,i1=i,f=0; f<3 ;f++ ,j1++,i1++)
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i1+1,j1+1)!=1 && (pDoc->GetSquare(i1-3,j1-3)!=1||
pDoc->GetSquare(i1-4,j1-4)!=1)) ||(pDoc->GetSquare(i1-3,j1-3)!=1 &&
(pDoc->GetSquare(i1+1,j1+1)!=1||pDoc->GetSquare(i1+2,j1+2)!=1))){
if(pDoc->GetSquare(i1+2,j1+2)==2 && pDoc->GetSquare(i1+1,j1+1)==0) {oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1+1;m_rezkomp[3][oo]=0;
m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1-4,j1-4)==2 && pDoc->GetSquare(i1-3,j1-3)==0) {oo++;m_rezkomp[1][oo]=i1-3;m_rezkomp[2][oo]=j1-3; m_rezkomp[3][oo]=0;m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1+1,j1+1)==0 && pDoc->GetSquare(i1-3,j1-3)==0) {oo++;m_rezkomp[1][oo]=i1-3;m_rezkomp[2][oo]=j1-3; m_rezkomp[3][oo]=i1+1;m_rezkomp[4][oo]=j1+1;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1+1,j1+1)==1 && pDoc->GetSquare(i1-3,j1-3)==0 &&
pDoc->GetSquare(i1-4,j1-4)==0)
{aa++;m_dopkomp[1][aa]=i1-3;m_dopkomp[2][aa]=j1-3;
m_dopkomp[3][aa]=i1-4;m_dopkomp[4][aa]=j1-4;}
if(pDoc->GetSquare(i1+1,j1+1)==0 && pDoc->GetSquare(i1-3,j1-3)==1
&& pDoc->GetSquare(i1+2,j1+2)==0)
{aa++;m_dopkomp[1][aa]=i1+1;m_dopkomp[2][aa]=j1+1;
m_dopkomp[3][aa]=i1+2;m_dopkomp[4][aa]=j1+2;} }}}
else k=0;}}}
for ( j=1; j<=15; j++) {
for ( i=1; i<=31 ; i++ ) {k=0;
for ( j1=j,i1=i,f=0; f<3 ;f++ ,j1--,i1++){
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;
if(k==3){k=0;if((pDoc->GetSquare(i1+1,j1-1)!=1 && (pDoc->GetSquare(i1-3,j1+3)!=1||
pDoc->GetSquare(i1-4,j1+4)!=1)) ||(pDoc->GetSquare(i1-3,j1+3)!=1 &&
(pDoc->GetSquare(i1+1,j1-1)!=1||pDoc->GetSquare(i1+2,j1-2)!=1))){
if(pDoc->GetSquare(i1+2,j1-2)==2 && pDoc->GetSquare(i1+1,j1-1)==0) {oo++;m_rezkomp[1][oo]=i1+1;m_rezkomp[2][oo]=j1-1;m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1-4,j1+4)==2 && pDoc->GetSquare(i1-3,j1+3)==0) {oo++;m_rezkomp[1][oo]=i1-3; m_rezkomp[2][oo]=j1+3;m_rezkomp[3][oo]=0; m_rezkomp[4][oo]=0;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1+1,j1-1)==0 && pDoc->GetSquare(i1-3,j1+3)==0) {oo++;m_rezkomp[1][oo]=i1-3;m_rezkomp[2][oo]=j1+3; m_rezkomp[3][oo]=i1+1;m_rezkomp[4][oo]=j1-1;if(yy==0||yy>2){yy=2;}}
if(pDoc->GetSquare(i1+1,j1-1)==1 && pDoc->GetSquare(i1-3,j1+3)==0 &&
pDoc->GetSquare(i1-4,j1+4)==0)
{aa++;m_dopkomp[1][aa]=i1-3;m_dopkomp[2][aa]=j1+3;m_dopkomp[3][aa]=i1-4; m_dopkomp[4][aa]=j1+4;}
if(pDoc->GetSquare(i1+1,j1-1)==0 && pDoc->GetSquare(i1-3,j1+3)==1 &&
pDoc->GetSquare(i1+2,j1-2)==0)
{aa++;m_dopkomp[1][aa]=i1+1;m_dopkomp[2][aa]=j1-1;m_dopkomp[3][aa]=i1+2;m_dopkomp[4][aa]=j1-2;}}}}
else k=0;}}}
int b2=0,b3=0,c2=0,c3=0,e2=0,e3=0,w2=0,w3=0,n2=0,n3=0,m2=0,m3=0,h=0,h1=0, h0=0,s2=0,s3=0,d2=0,d3=0. s=0,d=0,s1=0,d1=0,q=0 q1=0,z=0,S=0,D=0,v=0,q0=0,S1=0, D1=0,qk=0,qk1=0,qk0=0,S2=0,S3=0,D2=0,D3=0,qq=0,qq1=0,qq0=0,qqk=0,qqk1=0,qqk0=0;
e=m_rez[1][1];w=m_rez[2][1];
n=m_rez[3][1];m=m_rez[4][1];
if(y==0){
if (m_dop[1][1]!=0 || m_dop[2][1]!=0 || m_dop[3][1]!=0 || m_dop[4][1]!=0) { q1=0;q=0;q0=0;
for ( v=1 ; v<=a ; v++){ if (m_dop[1][v]!=0 || m_dop[2][v]!=0){
s = m_dop[1][v] ;d = m_dop[2][v];q=0;
for ( a1=1 ; a1<=a ; a1++){
if ( m_dop[1][a1]!=0 || m_dop[2][a1]!=0 || m_dop[3][a1]!=0 || m_dop[4][a1]!=0 ){
if (( s == m_dop[1][a1] && d == m_dop[2][a1])||( s == m_dop[3][a1] &&
d == m_dop[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=a ; v++){ if (m_dop[3][v]!=0 || m_dop[4][v]!=0){
s1 = m_dop[3][v] ;d1 = m_dop[4][v];q1=0;
for ( a1=1 ; a1<=a ; a1++){
if ( m_dop[1][a1]!=0 || m_dop[2][a1]!=0 || m_dop[3][a1]!=0 || m_dop[4][a1]!=0 ){
if (( s1== m_dop[1][a1] && d1== m_dop[2][a1])||( s1== m_dop[3][a1] &&
d1== m_dop[4][a1])){ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}}}
if (q0>1) {y=3;}}
if(yy==0){s=0;d=0;s1=0;d1=0;q=0 ;q1=0;z=0;S=0;D=0;v=0;q0=0;
if (m_dopkomp[1][1]!=0 || m_dopkomp[2][1]!=0 || m_dopkomp[3][1]!=0 || m_dopkomp[4][1]!=0) { qk1=0;qk=0;qk0=0;
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[1][v]!=0 || m_dopkomp[2][v]!=0){
s = m_dopkomp[1][v] ;d = m_dopkomp[2][v];qk=0;
for ( a1=1 ; a1<=aa ; a1++){
if ( m_dopkomp[1][a1]!=0 || m_dopkomp[2][a1]!=0 || m_dopkomp[3][a1]!=0 || m_dopkomp[4][a1]!=0 ){
if (( s == m_dopkomp[1][a1] && d == m_dopkomp[2][a1])||( s == m_dopkomp[3][a1] &&
d == m_dopkomp[4][a1])){ qk++;if ( qk>qk0) {qk0=qk;S1=s;D1=d;} }}}}}
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[3][v]!=0 || m_dopkomp[4][v]!=0){
s1 = m_dopkomp[3][v] ;d1 = m_dopkomp[4][v];qk1=0;
for ( a1=1 ; a1<=aa ; a1++){
if ( m_dopkomp[1][a1]!=0 || m_dopkomp[2][a1]!=0 || m_dopkomp[3][a1]!=0 || m_dopkomp[4][a1]!=0 ){
if (( s1== m_dopkomp[1][a1] && d1== m_dopkomp[2][a1])||( s1== m_dopkomp[3][a1] && d1== m_dopkomp[4][a1])){ qk1++;if ( qk1>qk0) {qk0=qk1;S1=s1;D1=d1;} }}}}}}
if (qk0>1) {yy=3;}}
if(y==0){
if (m_dopdop[1][1]!=0 || m_dopdop[2][1]!=0 || m_dopdop[3][1]!=0 || m_dopdop[4][1]!=0) { qq1=0;qq=0;qq0=0;
for ( v=1 ; v<=r ; v++){ if (m_dopdop[1][v]!=0 || m_dopdop[2][v]!=0){
s = m_dopdop[1][v] ;d = m_dopdop[2][v];qq=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s == m_dopdop[1][a1] && d == m_dopdop[2][a1])||( s == m_dopdop[3][a1] &&
d == m_dopdop[4][a1])){ qq++;if ( qq>qq0) {qq0=qq;S2=s;D2=d;} }}}}}
for ( v=1 ; v<=r ; v++){ if (m_dopdop[3][v]!=0 || m_dopdop[4][v]!=0){
s1 = m_dopdop[3][v] ;d1 = m_dopdop[4][v];qq1=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s1== m_dopdop[1][a1] && d1== m_dopdop[2][a1])||( s1== m_dopdop[3][a1] &&
d1== m_dopdop[4][a1])){ qq1++;if ( qq1>qq0) {qq0=qq1;S2=s1;D2=d1;} }}}}}}
if (qq0>2) {y=4;}}
if(yy==0){
if (m_dopdopkomp[1][1]!=0 || m_dopdopkomp[2][1]!=0 || m_dopdopkomp[3][1]!=0 || m_dopdopkomp[4][1]!=0) { qqk1=0;qqk=0;qqk0=0;
for ( v=1 ; v<=rr ; v++){ if (m_dopdopkomp[1][v]!=0 || m_dopdopkomp[2][v]!=0)
{s = m_dopdopkomp[1][v] ;d = m_dopdopkomp[2][v];qqk=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdopkomp[4][a1]!=0 ){
if (( s == m_dopdopkomp[1][a1] && d == m_dopdopkomp[2][a1])||
( s == m_dopdopkomp[3][a1] && d == m_dopdopkomp[4][a1]))
{ qqk++;if ( qqk>qqk0) {qqk0=qqk;S3=s;D3=d;} }}}}}
for ( v=1 ; v<=rr ; v++){ if (m_dopdopkomp[3][v]!=0 || m_dopdopkomp[4][v]!=0){
s1 = m_dopdopkomp[3][v] ;d1 = m_dopdopkomp[4][v];qqk1=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdopkomp[4][a1]!=0 ){
if (( s1== m_dopdopkomp[1][a1] && d1== m_dopdopkomp[2][a1])||( s1== m_dopdopkomp[3][a1] && d1== m_dopdopkomp[4][a1])){ qqk1++;if ( qqk1>qqk0) {qqk0=qqk1;S3=s1;D3=d1;} }}}}}}
if (qqk0>2) {yy=4;}}
if ((y<yy && yy!=0 && y!=0) || (y!=0 && yy==0)){
if( y==1||y==2 ) {
if (n==0 && m==0 ) {e0=e;w0=w;}
else { for (o1=2 ; o1<=o;o1++){
if (( e==m_rez[1][o1] && w==m_rez[2][o1]) || ( e==m_rez[3][o1] &&
w==m_rez[4][o1] )){ b++;}
if (( n==m_rez[1][o1] && m==m_rez[2][o1]) || ( n==m_rez[3][o1] &&
m==m_rez[4][o1] )){ c++;}} if ( b>c) { e0=e;w0=w;} if ( b<c) { e0=n;w0=m;}
if ( b==c) { for (o1=2 ; o1<oo;o1++){
if (( e==m_rezkomp[1][o1] && w==m_rezkomp[2][o1]) || ( e==m_rezkomp[3][o1] && w==m_rezkomp[4][o1] )){ b2++;}
if (( n==m_rezkomp[1][o1] && m==m_rezkomp[2][o1]) || ( n==m_rezkomp[3][o1] && m==m_rezkomp[4][o1] )){ c2++;} }
if ( b2>c2){ e0=e;w0=w;}
if ( b2<c2 ){ e0=n;w0=m;}
if ( b==c) { for ( a1=1 ; a1<a ; a1++){
if (( e == m_dop[1][a1] && w == m_dop[2][a1])||( e == m_dop[3][a1] &&
w == m_dop[4][a1])){ b1++;}
if (( n == m_dop[1][a1] && m == m_dop[2][a1])||( n == m_dop[3][a1] &&
m == m_dop[4][a1])){ c1++;} }
if ( b1>c1){ e0=e;w0=w;}
if ( b1<c1 ){ e0=n;w0=m;}
if ( b1==c1) { for ( a1=1 ; a1<aa ; a1++){
if (( e == m_dopkomp[1][a1] && w == m_dopkomp[2][a1])||( e == m_dopkomp[3][a1] &&
w == m_dopkomp[4][a1])){ b3++;}
if (( n == m_dopkomp[1][a1] && m == m_dopkomp[2][a1])||( n == m_dopkomp[3][a1] &&
m == m_dopkomp[4][a1])){ c3++;}}
if ( b3>c3){ e0=e;w0=w;}
if ( b3<c3 ){ e0=n;w0=m;}
if ( b3==c3){ h=0;h1=0;h0=-10;
for ( e2=e-1;e2<e+2;e2++){
for ( w2=w-1;w2<w+2;w2++) { if ( pDoc->GetSquare(e2,w2)==2 ) { h++;};
if ( pDoc->GetSquare(e2,w2)==1 ) { h--;}}}
for ( e3=e-2;e3<e+3;e3+=2){
for ( w3=w-2;w3<w+3;w3+=2) { if ( pDoc->GetSquare(e3,w3)==2 ) { h++;};
if ( pDoc->GetSquare(e3,w3)==1 ) { h--;}}} if ( h>h0) { h0=h;e0=e; w0=w;}
for ( n2=n-1;n2<n+2;n2++){
for ( m2=m-1;m2<m+2;m2++) { if ( pDoc->GetSquare(n2,m2)==2 ) { h1++;};
if ( pDoc->GetSquare(n2,m2)==1 ) { h1--;}}}
for ( n3=n-2;n3<n+3;n3+=2){
for ( m3=m-2;m3<m+3;m3+=2) { if ( pDoc->GetSquare(e3,w3)==2 ) { h1++;};
if ( pDoc->GetSquare(e3,w3)==1 ) { h1--;}}}
if ( h1>h0) { h0=h1;e0=n; w0=m;}}}}}}}
if( y==3) {
if (m_dop[1][1]!=0 || m_dop[2][1]!=0 || m_dop[3][1]!=0 || m_dop[4][1]!=0)
{ q1=0;q=0;q0=0;v=0;s=0;d=0;S=0;D=0;
for ( v=1 ; v<=a ; v++){ if (m_dop[1][v]!=0 || m_dop[2][v]!=0){
s = m_dop[1][v] ;d = m_dop[2][v];q=0;
for ( a1=1 ; a1<=a ; a1++){
if ( m_dop[1][a1]!=0 || m_dop[2][a1]!=0 || m_dop[3][a1]!=0 || m_dop[4][a1]!=0 ){
if (( s == m_dop[1][a1] && d == m_dop[2][a1])||( s == m_dop[3][a1] &&
d == m_dop[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=a ; v++){ if (m_dop[3][v]!=0 || m_dop[4][v]!=0){
s1 = m_dop[3][v] ;d1 = m_dop[4][v];q1=0;
for ( a1=1 ; a1<=a ; a1++){
if ( m_dop[1][a1]!=0 || m_dop[2][a1]!=0 || m_dop[3][a1]!=0 || m_dop[4][a1]!=0 ){
if (( s1== m_dop[1][a1] && d1== m_dop[2][a1])||( s1== m_dop[3][a1] &&
d1== m_dop[4][a1])){ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}
if (q0>1) {e0=S;w0=D;} }}
if( y==4) { if (m_dopdop[1][1]!=0 || m_dopdop[2][1]!=0 || m_dopdop[3][1]!=0 || m_dopdop[4][1]!=0) { q1=0;q=0;q0=0;v=0;s=0;d=0;S=0;D=0;
for ( v=1 ; v<=r ; v++){ if (m_dopdop[1][v]!=0 || m_dopdop[2][v]!=0){
s = m_dopdop[1][v] ;d = m_dopdop[2][v];q=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s == m_dopdop[1][a1] && d == m_dopdop[2][a1])||( s == m_dopdop[3][a1] &&
d == m_dopdop[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=r ; v++){ if (m_dopdop[3][v]!=0 || m_dopdop[4][v]!=0){
s1 = m_dopdop[3][v] ;d1 = m_dopdop[4][v];q1=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s1== m_dopdop[1][a1] && d1== m_dopdop[2][a1])||( s1== m_dopdop[3][a1] &&
d1== m_dopdop[4][a1])){ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}
if (q0>2) {e0=S;w0=D;} }}}
else {
e=m_rezkomp[1][1];
w=m_rezkomp[2][1];
n=m_rezkomp[3][1];
m=m_rezkomp[4][1];
if( yy==1||yy==2 ) {
if(n==0 && m==0) { e0=e;w0=w; }
else { for (o1=2 ; o1<=oo;o1++){
if (( e==m_rezkomp[1][o1] && w==m_rezkomp[2][o1]) || ( e==m_rezkomp[3][o1] && w==m_rezkomp[4][o1] )){ b++;}
if (( n==m_rezkomp[1][o1] && m==m_rezkomp[2][o1]) || ( n==m_rezkomp[3][o1] && m==m_rezkomp[4][o1] )){ c++;}}
if ( b>c) { e0=e;w0=w;}
if ( b<c) { e0=n;w0=m;}
if ( b==c) { for (o1=2 ; o1<o;o1++){
if (( e==m_rez[1][o1] && w==m_rez[2][o1]) || ( e==m_rez[3][o1] && w==m_rez[4][o1] ))
{ b2++;}
if (( n==m_rez[1][o1] && m==m_rez[2][o1]) || ( n==m_rez[3][o1] && m==m_rez[4][o1] ))
{ c2++;}}
if ( b2>c2){ e0=e;w0=w;}
if ( b2<c2 ){ e0=n;w0=m;}
if ( b2==c2) { for ( a1=1 ; a1<aa ; a1++){
if (( e == m_dopkomp[1][a1] && w == m_dopkomp[2][a1])||( e == m_dopkomp[3][a1] &&
w == m_dopkomp[4][a1])){ b1++;}
if (( n == m_dopkomp[1][a1] && m == m_dopkomp[2][a1])||( n == m_dopkomp[3][a1] &&
m == m_dopkomp[4][a1])){ c1++;} }
if ( b1>c1){ e0=e;w0=w;}
if ( b1<c1 ){ e0=n;w0=m;}
if ( b1==c1) { for ( a1=1 ; a1<a ; a1++){
if (( e == m_dop[1][a1] && w == m_dop[2][a1])||( e == m_dop[3][a1] &&
w == m_dop[4][a1])){ b3++;}
if (( n == m_dop[1][a1] && m == m_dop[2][a1])||( n == m_dop[3][a1] &&
m == m_dop[4][a1])){ c3++;}} if ( b3>c3){ e0=e;w0=w;}
if ( b3<c3 ){ e0=n;w0=m;}
if ( b3==c3){ h=0;h1=0;h0=-10;
for ( e2=e-1;e2<e+2;e2++){
for ( w2=w-1;w2<w+2;w2++) { if ( pDoc->GetSquare(e2,w2)==2 ) { h++;};if ( pDoc->GetSquare(e2,w2)==1 ) { h--;}}}
for ( e3=e-2;e3<e+3;e3+=2){
for ( w3=w-2;w3<w+3;w3+=2) { if ( pDoc->GetSquare(e3,w3)==2 ) { h++;};if ( pDoc->GetSquare(e3,w3)==1 ) { h--;}}}
if ( h>h0) { h0=h;e0=e; w0=w;}
for ( n2=n-1;n2<n+2;n2++){
for ( m2=m-1;m2<m+2;m2++) { if ( pDoc->GetSquare(n2,m2)==2 ) { h1++;};
if ( pDoc->GetSquare(n2,m2)==1 ) { h1--;} }}
for ( n3=n-2;n3<n+3;n3+=2){
for ( m3=m-2;m3<m+3;m3+=2) { if ( pDoc->GetSquare(e3,w3)==2 ) { h1++;};
if ( pDoc->GetSquare(e3,w3)==1 ) { h1--;}}}
if ( h1>h0) { h0=h1;e0=n; w0=m;}}}}}}}
if( yy==3) {
if (m_dopkomp[1][1]!=0 || m_dopkomp[2][1]!=0 || m_dopkomp[3][1]!=0 || m_dopkomp[4][1]!=0) { q1=0;q=0;q0=0;v=0;s=0;d=0;S=0;D=0;
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[1][v]!=0 || m_dopkomp[2][v]!=0)
{s = m_dopkomp[1][v] ;d = m_dopkomp[2][v];q=0;
for ( a1=1 ; a1<=aa ; a1++){
if ( m_dopkomp[1][a1]!=0 || m_dopkomp[2][a1]!=0 || m_dopkomp[3][a1]!=0 || m_dopkomp[4][a1]!=0 ){
if (( s == m_dopkomp[1][a1] && d == m_dopkomp[2][a1])||( s == m_dopkomp[3][a1] &&
d == m_dopkomp[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[3][v]!=0 || m_dopkomp[4][v]!=0)
{s1 = m_dopkomp[3][v] ;d1 = m_dopkomp[4][v];q1=0;
for ( a1=1 ; a1<=aa ; a1++){
if ( m_dopkomp[1][a1]!=0 || m_dopkomp[2][a1]!=0 || m_dopkomp[3][a1]!=0 || m_dopkomp[4][a1]!=0 ){
if (( s1== m_dopkomp[1][a1] && d1== m_dopkomp[2][a1])||( s1== m_dopkomp[3][a1] && d1== m_dopkomp[4][a1])){ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} } }}}}
if (q0>1) {e0=S;w0=D;}}}
if( yy==4) {
if (m_dopdopkomp[1][1]!=0 || m_dopdopkomp[2][1]!=0 || m_dopdopkomp[3][1]!=0 || m_dopdopkomp[4][1]!=0) { q1=0;q=0;q0=0;v=0;s=0;d=0;S=0;D=0;
for ( v=1 ; v<=rr ; v++){ if (m_dopdopkomp[1][v]!=0 || m_dopdopkomp[2][v]!=0)
{s = m_dopdopkomp[1][v] ;d = m_dopdopkomp[2][v];q=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdop[4][a1]!=0 ){
if (( s == m_dopdopkomp[1][a1] && d == m_dopdopkomp[2][a1])||
( s == m_dopdopkomp[3][a1] && d == m_dopdopkomp[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=rr ; v++){ if (m_dopdopkomp[3][v]!=0 || m_dopdopkomp[4][v]!=0)
{s1 = m_dopdopkomp[3][v] ;d1 = m_dopdopkomp[4][v];q1=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdopkomp[4][a1]!=0 ){
if (( s1== m_dopdopkomp[1][a1] && d1== m_dopdopkomp[2][a1])||( s1== m_dopdopkomp[3][a1] && d1== m_dopdopkomp[4][a1])){ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}}if (q0>2) {e0=S;w0=D;}}}}
if (e0==0&&w0==0) {
if (m_dopkomp[1][1]!=0 || m_dopkomp[2][1]!=0 || m_dopkomp[3][1]!=0 || m_dopkomp[4][1]!=0) { q1=0;q=0;q0=0;
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[1][v]!=0 || m_dopkomp[2][v]!=0)
{s = m_dopkomp[1][v] ;d = m_dopkomp[2][v];q=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdopkomp[4][a1]!=0 ){
if (( s == m_dopdopkomp[1][a1] && d == m_dopdopkomp[2][a1])||( s == m_dopdopkomp[3][a1] && d == m_dopdopkomp[4][a1]))
{ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=aa ; v++){ if (m_dopkomp[3][v]!=0 || m_dopkomp[4][v]!=0){
s1 = m_dopkomp[3][v] ;d1 = m_dopkomp[4][v];q1=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdopkomp[1][a1]!=0 || m_dopdopkomp[2][a1]!=0 || m_dopdopkomp[3][a1]!=0 || m_dopdopkomp[4][a1]!=0 ){
if (( s1== m_dopdopkomp[1][a1] && d1== m_dopdopkomp[2][a1])||
( s1== m_dopdopkomp[3][a1] && d1== m_dopdopkomp[4][a1]))
{ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}}}if (q0>0) {e0=S;w0=D;}}
if (e0==0&&w0==0) {
if (m_dop[1][1]!=0 || m_dop[2][1]!=0 || m_dop[3][1]!=0 || m_dop[4][1]!=0)
{ q1=0;q=0;q0=0;for ( v=1 ; v<=a ; v++){ if (m_dop[1][v]!=0 || m_dop[2][v]!=0)
{s = m_dop[1][v] ;d = m_dop[2][v];q=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s == m_dopdop[1][a1] && d == m_dopdop[2][a1])||( s == m_dopdop[3][a1] &&
d == m_dopdop[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=a ; v++){ if (m_dop[3][v]!=0 || m_dop[4][v]!=0)
{s1 = m_dop[3][v] ;d1 = m_dop[4][v];q1=0;
for ( a1=1 ; a1<=rr ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){ if (( s1== m_dopdop[1][a1] && d1== m_dopdop[2][a1])||
( s1== m_dopdop[3][a1] && d1== m_dopdop[4][a1]))
{ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}}}
if (q0>0) {e0=S;w0=D;}}
if (e0==0&&w0==0) {
if (m_dopdop[1][1]!=0 || m_dopdop[2][1]!=0 || m_dopdop[3][1]!=0 || m_dopdop[4][1]!=0)
{ q1=0;q=0;q0=0;v=0;s=0;d=0;S=0;D=0;
for ( v=1 ; v<=r ; v++){ if (m_dopdop[1][v]!=0 || m_dopdop[2][v]!=0)
{s = m_dopdop[1][v] ;d = m_dopdop[2][v];q=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s == m_dopdop[1][a1] && d == m_dopdop[2][a1])||( s == m_dopdop[3][a1] &&
d == m_dopdop[4][a1])){ q++;if ( q>q0) {q0=q;S=s;D=d;} }}}}}
for ( v=1 ; v<=r ; v++){ if (m_dopdop[3][v]!=0 || m_dopdop[4][v]!=0){
s1 = m_dopdop[3][v] ;d1 = m_dopdop[4][v];q1=0;
for ( a1=1 ; a1<=r ; a1++){
if ( m_dopdop[1][a1]!=0 || m_dopdop[2][a1]!=0 || m_dopdop[3][a1]!=0 ||
m_dopdop[4][a1]!=0 ){
if (( s1== m_dopdop[1][a1] && d1== m_dopdop[2][a1])||( s1== m_dopdop[3][a1] && d1== m_dopdop[4][a1]))
{ q1++;if ( q1>q0) {q0=q1;S=s1;D=d1;} }}}}}if (q0>1) {e0=S;w0=D;}}}
if (e0==0&&w0==0) {
for ( i=0; i<31 ; i++) {
for ( j=0; j<14 ; j++) {
if ( pDoc->GetSquare ( i, j) == 1 && pDoc->GetSquare ( i+1, j+1) == 0 )
{ e0=i+1;w0=j+1;}}}}
pDoc->Add0 (e0, w0);
Draw0 (&dc, &m_rect[e0][w0]); int kon=0;
for ( i=1; i<=31 ; i++) { k=0;
for ( j=1; j<=15 ; j++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==5){kon=1;}}
else k=0;}}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) {
if ( pDoc->GetSquare ( i, j) == 2 ){ k++;
if(k==5){kon=1;}}
else k=0; }}
for ( j=1; j<=15 ; j++) {k=0;
for ( i=1; i<=31 ; i++) { k=0;
for ( j1=j,i1=i,f=0; f<5 ;f++,j1++,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;if(k==5){kon=1;}}
else k=0;}
for ( j1=j,i1=i,f=0; f<5 ;f++,j1--,i1++ ){
if ( pDoc->GetSquare ( i1, j1) == 2 ){ k++;
if(k==5){kon=1;}}}}}
if(kon==1){MessageBox ("You are LOOZER!");//pDoc->OnNewDocument(); }
Размещено на Allbest.ru
Подобные документы
Разработка популярной развлекательной игры крестики-нолики. Возможность играть с компьютером, который играет согласно созданному алгоритму. Новые возможности Visual Studio. Легкое усвоение программы. Удобный интерфейс - "визитная карточка" приложения.
курсовая работа [74,6 K], добавлен 20.12.2009Программный продукт для игры "Крестики-нолики". Описание пользовательского интерфейса. Факт базы данных, определяющий состояние счёта. Предикат изменяющий состояние игрового процесса и подсчитывающий количество занятых ячеек поля. Исходный код программы.
курсовая работа [34,6 K], добавлен 19.05.2014Проект программы "Крестики-нолики". Блок-схема алгоритма. Описание работы программного продукта. Инструкция по инсталляции. Инструкция программисту, возможность доработки с целью упрощения исполняемых кодов. Инструкция по проверке и тестированию.
курсовая работа [235,8 K], добавлен 05.12.2009Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.
курсовая работа [236,5 K], добавлен 27.01.2014Разработка консольного приложения: описание и сценарий использования программы, интерфейс пользователя. Поэтапное описание создание кода компьютерной игры "Крестики нолики". Функциональные и нефункциональные требования, описание исключительных ситуаций.
методичка [819,6 K], добавлен 12.05.2013Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Разработка алгоритма, выполняющего поиск наилучшего решения на каждый ход в игре "крестики-нолики" (используя минимальный алгоритм). Обоснование выбора программных средств для решения задачи. Блок-схема интеллектуального алгоритма реализации программы.
контрольная работа [380,0 K], добавлен 28.04.2014Разработка аналога игры "Крестики-нолики", где игроки выбирают размер поля. Правила игры. Интерфейс программы. Главная функция main. Класс XO. Метод вывода поля и хода игроков. Методы поиска крестиков, ноликов. Методы проверки выигрышных ситуаций игроков.
курсовая работа [281,5 K], добавлен 30.01.2018Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.
курсовая работа [352,8 K], добавлен 14.04.2011Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.
курсовая работа [1,8 M], добавлен 05.03.2013