Создание компьютерной игры "Крестики и нолики"

Общая характеристика языков программирования. Краткий обзор 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.