
3 Програмна реалізація рішення задачі
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
HANDLE hConsole;
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
void GotoXY(int X, int Y)
{
COORD coord = { X, Y };
SetConsoleCursorPosition(hStdOut, coord);
}
enum ConsoleColor
{
Black = 0,
Blue = 1,
Green = 2,
Cyan = 3,
Red = 4,
Magenta = 5,
Brown = 6,
LightGray = 7,
DarkGray = 8,
LightBlue = 9,
LightGreen = 10,
LightCyan = 11,
LightRed = 12,
LightMagenta = 13,
Yellow = 14,
White = 15
};
void SetColor(int text, int background)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
char s1[256];
char *Rus (char *s2)
{ AnsiToOem(s2,s1); return s1; }
int sheeps(int pole[10][10])
{
int i,j,f,k,r;
int rand_chislo, rand_chislo1, ts,s;
srand(time(NULL));
for (i=0;i<10;i++)
for (j=0;j<10;j++)
pole [i][j]=0;
do{ f=0;
rand_chislo = 0 + rand() %10;
rand_chislo1= 0 + rand() %10;
ts = 1+rand()%4;
if (ts==1) {for(i=0;i<3;i++) if(rand_chislo==i)f=1;}
if (ts==2) {for(i=7;i<10;i++) if(rand_chislo==i)f=1;}
if (ts==3) {for(i=0;i<3;i++) if(rand_chislo1==i)f=1;}
if (ts==4) {for(i=7;i<10;i++) if(rand_chislo1==i)f=1;}
}
while (f==1);
switch (ts){
case 1: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo-1][rand_chislo1]=1;
pole[rand_chislo-2][rand_chislo1]=1;pole[rand_chislo-3][rand_chislo1]=1; break;
case 2: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo+1][rand_chislo1]=1;
pole[rand_chislo+2][rand_chislo1]=1;pole[rand_chislo+3][rand_chislo1]=1; break;
case 3: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1-1]=1;
pole[rand_chislo][rand_chislo1-2]=1;pole[rand_chislo][rand_chislo1-3]=1;break;
case 4: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1+1]=1;
pole[rand_chislo][rand_chislo1+2]=1;pole[rand_chislo][rand_chislo1+3]=1; break; }
for (k=0;k<3;k++)
{
do{ f=0;
rand_chislo = 0 + rand() %10;
rand_chislo1= 0 + rand() %10;
ts = 1+rand()%4;
if (ts==1) {if(rand_chislo!=0){ for (i=rand_chislo-2;i<rand_chislo+2;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+1;j++)
{if (pole[i][j]!=0){f=1;}}}else f=1; }
if (ts==2) {if (rand_chislo!=9) { for (i=rand_chislo-1;i<=rand_chislo+2;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+1;j++)
{ if (pole[i][j]!=0){ f=1;}}}else f=1; }
if (ts==3) { if (rand_chislo1!=0) { for (i=rand_chislo-1;i<=rand_chislo+1;i++)
for (j=rand_chislo1-2;j<=rand_chislo1+1;j++)
{ if (pole[i][j]!=0){ f=1;}}}else f=1; }
if (ts==4) { if (rand_chislo1!=9) { for (i=rand_chislo-1;i<=rand_chislo+1;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+2;j++)
{ if (pole[i][j]!=0){ f=1;}}}
else f=1; }
}
while (f==1);
switch (ts){
case 1: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo-1][rand_chislo1]=1; break;
case 2: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo+1][rand_chislo1]=1; break;
case 3: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1-1]=1;break;
case 4: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1+1]=1; break; }
}
for (k=0;k<2;k++) {
do{ f=0;
rand_chislo = 0 + rand() %10;
rand_chislo1= 0 + rand() %10;
ts = 1+rand()%4;
if (ts==1) {if(rand_chislo!=0&&rand_chislo!=1){ for (i=rand_chislo-3;i<rand_chislo+2;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+1;j++)
{if (pole[i][j]!=0){f=1;}}}else f=1; }
if (ts==2) {if (rand_chislo!=9&&rand_chislo!=8) { for (i=rand_chislo-1;i<=rand_chislo+3;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+1;j++)
{ if (pole[i][j]!=0){ f=1;}}}else f=1; }
if (ts==3) { if (rand_chislo1!=0&&rand_chislo1!=1) { for (i=rand_chislo-1;i<=rand_chislo+1;i++)
for (j=rand_chislo1-3;j<=rand_chislo1+1;j++)
{ if (pole[i][j]!=0){ f=1;}}}else f=1; }
if (ts==4) { if (rand_chislo1!=9&&rand_chislo1!=8) { for (i=rand_chislo-1;i<=rand_chislo+1;i++)
for (j=rand_chislo1-1;j<=rand_chislo1+3;j++)
{ if (pole[i][j]!=0){ f=1;}}}
else f=1; }
}
while (f==1);
switch (ts){
case 1: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo-1][rand_chislo1]=1;pole[rand_chislo-2][rand_chislo1]=1; break;
case 2: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo+1][rand_chislo1]=1; pole[rand_chislo+2][rand_chislo1]=1; break;
case 3: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1-1]=1;pole[rand_chislo][rand_chislo1-2]=1;break;
case 4: pole[rand_chislo][rand_chislo1]=1; pole[rand_chislo][rand_chislo1+1]=1;pole[rand_chislo][rand_chislo1+2]=1; break; }
}
for (i=0; i<4;i++ )
{do{
rand_chislo = 0 + rand() %10;
rand_chislo1= 0 + rand() %10;}
while (pole[rand_chislo][rand_chislo1]!=0||pole[rand_chislo+1][rand_chislo1]!=0||pole[rand_chislo-1][rand_chislo1]!=0||pole[rand_chislo][rand_chislo1+1]!=0||pole[rand_chislo][rand_chislo1-1]!=0||pole[rand_chislo+1][rand_chislo1+1]!=0||pole[rand_chislo-1][rand_chislo1-1]!=0||pole[rand_chislo+1][rand_chislo1-1]!=0||pole[rand_chislo-1][rand_chislo1+1]!=0);
pole[rand_chislo][rand_chislo1]=1;}
return pole[10][10];
}
int ras(int mypole[10][10])
{
system ("cls");
int i,j,x,y,u,f,e,w,nap,ui;
SetColor(15,0);
printf("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBB\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBC\n");
GotoXY(40,0);printf("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBB\n");
GotoXY(40,1);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,2);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,3);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,4);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,5);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,6);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,7);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,8);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,9);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,10);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,11);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,12);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,13);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,14);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,15);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,16);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,17);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,18);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,19);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,20);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,21);printf("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBC\n");
for (i=0,x=1;i<10,x<21;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y); if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,y+1); if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
for (i=0;i<10;i++)
for (j=0;j<10;j++)
mypole[i][j]=0;
GotoXY(24,7);SetColor(15,0);printf (Rus("поворот-space"));
GotoXY(24,8);SetColor(15,0);printf (Rus("принять-enter"));
GotoXY(22,9);SetColor(15,0);printf (Rus("управление-стрелки"));
GotoXY(23,10);SetColor(15,0);printf (Rus("выход в меню-Esc"));
ui=0;
for (u=1;u<5;u++)
{ if (ui==0)
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,y+1);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
switch (u)
{
case 1:
{ x=41;y=nap=1;
i=j=0;
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
do { f=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 72:
{
if (y!=1)
{
if (nap==1)
{
for (e=x;e<x+8;e=e+2)
{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(e,y+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
y=y-2;
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else
{ if (y!=33){
for (e=y;e<y+8;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,e+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
y=y-2;
for (e=y;e<y+8;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
}
break;
}
case 77:
{
if (nap==1)
{
if (x!=53)
{
for (e=x;e<x+8;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(e,y+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
x=x+2;
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if(x!=59){
for (e=y;e<y+8;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,e+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
x=x+2;
for (e=y;e<y+8;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 80:
{
if(nap==1)
{
if (y!=19)
{
for (e=x;e<x+8;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(e,y+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
y=y+2;
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else {if(y!=13){
for (e=y;e<y+8;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,e+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
y=y+2;
for (e=y;e<y+8;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 75:
{ if(nap==1)
{
if (x!=41)
{
for (e=x;e<x+8;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(e,y+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
x=x-2;
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if (x!=41){
for (e=y;e<y+8;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,e+1);if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
x=x-2;
for (e=y;e<y+8;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
}}
else {switch(code){
case 32:
{
if (nap==1&&y<15||nap==-1&&x<55)
{nap=nap*(-1);
if(nap==1)
{
for (e=y;e<y+8;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=x;e<x+8;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else {
for (e=x;e<x+8;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=y;e<y+8;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 13:{
if(nap==1)
{
for (e=x;e<x+8;e=e+2)
{i=(e-40)/2;
j=y/2;
mypole[i][j]=1;}
}
else {
for (e=y;e<y+8;e=e+2)
{i=(x-40)/2;
j=e/2;
mypole[i][j]=1;}
}
f=1; break;
}
case 27: {f=1;ui=1;break;}
}
}}while(f!=1);
break;
}
case 2:
{ for(w=0;w<2;w++)
if (ui==0)
{ for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,y+1);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=41;y=nap=1;
i=j=0;
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
do { f=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
{
case 72:
{
if (y!=1)
{
if (nap==1)
{
for (e=x;e<x+6;e=e+2)
{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y-2;
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else
{ if (y!=33){
for (e=y;e<y+6;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y-2;
for (e=y;e<y+6;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
}
break;
}
case 77:
{
if (nap==1)
{
if (x!=55)
{
for (e=x;e<x+6;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x+2;
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if(x!=59){
for (e=y;e<y+6;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x+2;
for (e=y;e<y+6;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 80:
{
if(nap==1)
{
if (y!=19)
{
for (e=x;e<x+6;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y+2;
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else {if(y!=15){
for (e=y;e<y+6;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y+2;
for (e=y;e<y+6;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 75:
{ if(nap==1)
{
if (x!=41)
{
for (e=x;e<x+6;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x-2;
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if (x!=41){
for (e=y;e<y+6;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x-2;
for (e=y;e<y+6;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
}
}
}
else {switch(code){
case 32:
{
if (nap==1&&y<17||nap==-1&&x<57)
{nap=nap*(-1);
if(nap==1)
{
for (e=y;e<y+6;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=x;e<x+6;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else {
for (e=x;e<x+6;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=y;e<y+6;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 13:{int pr=f=0;
if(nap==1)
{
for (e=x-2;e<=x+6;e=e+2)
for (int a=y-2;a<=y+2;a=a+2)
{i=(e-40)/2;
j=a/2;
if (i<10&&j<10)if (mypole[i][j]==1)
pr=1; }
if (pr==0)
for (e=x;e<x+6;e=e+2)
{i=(e-40)/2;
j=y/2;
mypole[i][j]=1;f=1;}
}
else { for (e=y-2;e<=y+6;e=e+2)
for (int a=x-2;a<=x+2;a=a+2)
{i=(a-40)/2;
j=e/2;
if (i<10&&j<10)if (mypole[i][j]==1)
pr=1;}
if (pr==0)
for (e=y;e<y+6;e=e+2)
{i=(x-40)/2;
j=e/2;
mypole[i][j]=1;f=1;}
}
break;
}
case 27: {f=1;ui=1;break;}
}
}
}while(f!=1);
}
break;
}
case 3:
{ for(w=0;w<3;w++)
if(ui==0)
{ for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,y+1);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=41;y=nap=1;
i=j=0;
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
do { f=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 72:
{
if (y!=1)
{
if (nap==1)
{
for (e=x;e<x+4;e=e+2)
{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y-2;
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else
{ if (y!=33){
for (e=y;e<y+4;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y-2;
for (e=y;e<y+4;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
}
break;
}
case 77:
{
if (nap==1)
{
if (x!=57)
{
for (e=x;e<x+4;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x+2;
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if(x!=59){
for (e=y;e<y+4;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x+2;
for (e=y;e<y+4;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 80:
{
if(nap==1)
{
if (y!=19)
{
for (e=x;e<x+4;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y+2;
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else {if(y!=17){
for (e=y;e<y+4;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y+2;
for (e=y;e<y+4;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 75:
{ if(nap==1)
{
if (x!=41)
{
for (e=x;e<x+4;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x-2;
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
}
else { if (x!=41){
for (e=y;e<y+4;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x-2;
for (e=y;e<y+4;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
}
}
else {switch(code){
case 32:
{
if (nap==1&&y<19||nap==-1&&x<59)
{nap=nap*(-1);
if(nap==1)
{
for (e=y;e<y+4;e=e+2)
{
i=(x-40)/2;
j=e/2;
GotoXY(x,e);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,e+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=x;e<x+4;e=e+2)
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
else {
for (e=x;e<x+4;e=e+2){
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
for (e=y;e<y+4;e=e+2)
{
GotoXY(x,e); SetColor(0,14);printf (" ");
GotoXY(x,e+1); SetColor(0,14);printf (" ");
}
}
}
break;
}
case 13:{int pr=f=0;
if(nap==1)
{
for (e=x-2;e<=x+4;e=e+2)
for (int a=y-2;a<=y+2;a=a+2)
{i=(e-40)/2;
j=a/2;
if (i<10&&j<10)if (mypole[i][j]==1)
pr=1; }
if (pr==0)
for (e=x;e<x+4;e=e+2)
{i=(e-40)/2;
j=y/2;
mypole[i][j]=1;f=1;}
}
else { for (e=y-2;e<=y+4;e=e+2)
for (int a=x-2;a<=x+2;a=a+2)
{i=(a-40)/2;
j=e/2;
if (i<10&&j<10)if (mypole[i][j]==1)
pr=1;}
if (pr==0)
for (e=y;e<y+4;e=e+2)
{i=(x-40)/2;
j=e/2;
mypole[i][j]=1;f=1;}
}
break;
}
case 27: {f=1;ui=1;break;}
}
}
}while(f!=1);
}
break;
}
case 4:
{ for(w=0;w<4;w++)
if(ui==0)
{ for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,y+1);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=41;y=1;
i=j=0;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
do { f=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 72:
{
if (y!=1)
{
e=x;
{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y-2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 77:
{
if (x!=59)
{
e=x;{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x+2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 80:
{
if (y!=19)
{
e=x;{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
y=y+2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 75:
{
if (x!=41)
{
e=x;{
i=(e-40)/2;
j=y/2;
GotoXY(e,y);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(e,y+1);if (mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
x=x-2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
}}
else {switch(code) {
case 13:{
int pr=f=0;
for (e=x-2;e<=x+2;e=e+2)
for (int a=y-2;a<=y+2;a=a+2)
{i=(e-40)/2;
j=a/2;
if (i<10&&j<10)if (mypole[i][j]==1)
pr=1; }
if (pr==0)
for (e=x;e<x+2;e=e+2)
{i=(e-40)/2;
j=y/2;
mypole[i][j]=1;f=1;}
break;
}
case 27: {f=1;ui=1;break;}
break;}
}
}while(f!=1);
}
break;
}
break; }
}
return ui;
}
int menu()
{ int f=1,k;
SetColor(0,0);
system("cls");
GotoXY(30,10); SetColor(15,0);printf (Rus("Главное меню"));
GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("Новая игра"));SetColor(15,0);printf ("]");
GotoXY(32,13);SetColor(15,0);printf ("["); printf (Rus("выход"));SetColor(15,0);printf ("]");
do {k=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 80: {f=f*(-1);
if (f==1){GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("Новая игра"));SetColor(15,0);printf ("]");
GotoXY(32,13);SetColor(15,0); printf (Rus("[выход]"));}
else{ GotoXY(30,12);SetColor(15,0);printf ("["); printf (Rus("Новая игра"));printf ("]");
GotoXY(32,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("выход"));SetColor(15,0);printf ("]");}
break;}
case 72: {f=f*(-1);
if (f==1){GotoXY(30,12);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("Новая игра"));SetColor(15,0);printf ("]");
GotoXY(32,13);SetColor(15,0); printf (Rus("[выход]"));}
else{ GotoXY(30,12);SetColor(15,0);printf ("["); printf (Rus("Новая игра"));printf ("]");
GotoXY(32,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("выход"));SetColor(15,0);printf ("]");}
break;}
}
}
else {switch(code)
{
case 13: k=1; break;
}
}
} while (k==0);
return f;
}
int comp(int mypole[10][10], int udar , int ud[2], int hod[1])
{
int i,j,f,per,n,m,x,y,k,str,sto,h,g;
int pri,prj;
srand(time(NULL));GotoXY(24,14); SetColor(15,0);printf (Rus(" Ходит комп "));
do {f=1;per=0; k=0;GotoXY(28,16);SetColor(15,0);printf (Rus(" "));Sleep(1000);
h=0; if (hod[0]==5){
for (n=ud[0]-1;n<=ud[0]+1&&n<10;n++)
for (m=ud[1]-1;m<=ud[1]+1&&m<10;m++)
if(mypole[n][m]==1)
{h=1;}
if (h==0)
{mypole[ud[0]][ud[1]]=5;
for (n=ud[0]-1;n<=ud[0]+1&&n<10;n++)
for (m=ud[1]-1;m<=ud[1]+1&&m<10;m++)
if(mypole[n][m]==0)
{mypole[n][m]=3;}
}
if(h==1) {per=1;srand(time(NULL));
do{pri=1+rand() %4; prj=0;
switch(pri){
case 1:
{if(mypole[ud[0]-1][ud[1]]==0&&ud[0]!=0){mypole[ud[0]-1][ud[1]]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ìèìî!"));prj=1;per=1;f=1;}
if(mypole[ud[0]-1][ud[1]]==1&&ud[0]!=0) {mypole[ud[0]-1][ud[1]]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}
break;}
case 2:
{if(mypole[ud[0]+1][ud[1]]==0&&ud[0]!=9){mypole[ud[0]+1][ud[1]]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ìèìî!"));prj=1;per=1;f=1;}
if(mypole[ud[0]+1][ud[1]]==1&&ud[0]!=9) {mypole[ud[0]+1][ud[1]]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}
break;}
case 3: {if(mypole[ud[0]][ud[1]-1]==0&&ud[1]!=0){mypole[ud[0]][ud[1]-1]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ìèìî!"));prj=1;per=1;f=1;}
if(mypole[ud[0]][ud[1]-1]==1&&ud[1]!=0) {mypole[ud[0]][ud[1]-1]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}
break;}
case 4: {if(mypole[ud[0]][ud[1]+1]==0&&ud[1]!=9){mypole[ud[0]][ud[1]+1]=3;GotoXY(28,16);SetColor(15,0);Sleep(1000);printf (Rus("Ìèìî!"));prj=1;per=1;f=1;}
if(mypole[ud[0]][ud[1]+1]==1&&ud[1]!=9) {mypole[ud[0]][ud[1]+1]=4;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));udar++;Sleep(1000); printf ("\x07");f=0;prj=1;per=1;hod[0]=1;}
break;}
}
}while (prj==0);
}}
if (hod[0]==1)
{
for (i=0;i<10;i++)
for (j=0;j<10;j++)
{
h=0;
if(mypole[i][j]==4||mypole[i][j]==5)
{
mypole[i][j]=5;
if(i>0){if(mypole[i-1][j]==1){h=1;mypole[i-1][j]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));Sleep(1000); printf ("\x07");
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}}}
if(i<9){if(mypole[i+1][j]==1){h=1;mypole[i+1][j]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));Sleep(1000); printf ("\x07");
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}}}
if(j>0){if(mypole[i][j-1]==1){h=1;mypole[i][j-1]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));Sleep(1000); printf ("\x07");
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}}}
if(j<9){if(mypole[i][j+1]==1){h=1;mypole[i][j+1]=5;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));Sleep(1000); printf ("\x07");
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}}}
}
}
for (i=0;i<10;i++)
for (j=0;j<10;j++)
{
h=0;
if(mypole[i][j]==5)
{
if(i>0){if(mypole[i-1][j]==0){h=1;mypole[i-1][j]=3;}}
if(i<9){if(mypole[i+1][j]==0){h=1;mypole[i+1][j]=3;}}
if(j>0){if(mypole[i][j-1]==0){h=1;mypole[i][j-1]=3;}}
if(j<9){if(mypole[i][j+1]==0){h=1;mypole[i][j+1]=3;}}
if(i>0&&j>0){if(mypole[i-1][j-1]==0){h=1;mypole[i-1][j-1]=3;}}
if(i>0&&j<9){if(mypole[i-1][j+1]==0){h=1;mypole[i-1][j+1]=3;}}
if(i<9&&j<9){if(mypole[i+1][j+1]==0){h=1;mypole[i+1][j+1]=3;}}
if(i<9&&j>0){if(mypole[i+1][j-1]==0){h=1;mypole[i+1][j-1]=3;}}
}
}
}
udar=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(mypole[i][j]==4||mypole[i][j]==5)
udar++;
if(udar==20)
{f=1;per=1;}
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}
if (per==0)
{
do{
i = 0 + rand() %10;
j = 0 + rand() %10;
}while(mypole[i][j]>1);
if (mypole[i][j]==1){mypole[i][j]=4;ud[0]=i;ud[1]=j;GotoXY(28,16);SetColor(15,0);printf (Rus("Попал!"));hod[0]=5;Sleep(1000); printf ("\x07");f=0;}
if(mypole[i][j]==0) {mypole[i][j]=3;f=1;GotoXY(28,16);SetColor(15,0);printf (Rus("Ìèìî!"));Sleep(1000);}
}
Sleep(1000);
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
GotoXY(x,y+1);switch(mypole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:SetColor(0,12);printf (" ");break;
case 2:SetColor(0,7);printf (" ");break;
case 3:SetColor(0,11);printf (" ");break;
case 4:SetColor(0,7);printf (" ");break;
case 5:SetColor(0,7);printf (" ");break;}
}
}while (f==0);
return udar;
}
int player(int pole[10][10],int udar)
{ GotoXY(27,16);SetColor(0,0);printf (Rus(" "));
int i,j,x,y,f,e,k=0,pop,iper,jper;int vih, end;
for (i=0,x=1;i<10,x<21;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if(pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
GotoXY(x,y+1);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if(pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
}
x=1;y=1;
i=j=0;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
do { f=0; pop=0; GotoXY(24,14); SetColor(15,0);printf (Rus(" Ходит игрок "));
int code =getch();
if (code == 224)
{GotoXY(27,16);SetColor(0,0);printf (Rus(" "));
code = getch();
switch(code)
{
case 72:
{
if (y!=1)
{
e=x;
{
i=e/2;
j=y/2;
GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
}
y=y-2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 77:
{
if (x!=19)
{
e=x;{
i=e/2;
j=y/2;
GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
}
x=x+2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 80:
{
if (y!=19)
{
e=x;{
i=e/2;
j=y/2;
GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
}
y=y+2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
case 75:
{
if (x!=1)
{
e=x;{
i=e/2;
j=y/2;
GotoXY(e,y);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
GotoXY(e,y+1);if(pole[i][j]==3){SetColor(0,11);printf (" ");}else {if (pole[i][j]==2){SetColor(0,12);printf (" ");}else {if((i+j)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}}
}
x=x-2;
e=x;
{
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
}
}
break;
}
}}
else {switch(code) {
case 13:{
int pr=f=0;
pop=0;
e=x;
int a=y;
{i=e/2;
j=a/2;
if (i<10&&j<10)if (pole[i][j]==2||pole[i][j]==3)
pr=1; }
if (pr==0)
{e=x;
i=e/2;
j=y/2;
if (pole[i][j]==0)
{pole[i][j]=3;f=1;GotoXY(28,16);SetColor(15,0);printf (Rus("Ìèìî!"));}
else {pole[i][j]=2; printf ("\x07");GotoXY(27,16);SetColor(15,0);printf (Rus("Попал!"));pop=1;udar++;}}
break;
}
case 27: { f=1;
GotoXY(24,14); SetColor(15,0);printf (Rus(" Выйти? "));
GotoXY(24,16);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("äà"));SetColor(15,0);printf ("] ");
GotoXY(31,16);SetColor(15,0);printf (" ["); printf (Rus("íåò"));SetColor(15,0);printf ("]");
do {k=0;vih=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 75: {f=f*(-1);
if (f==1){GotoXY(24,16);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("äà"));SetColor(15,0);printf ("] ");
GotoXY(31,16);SetColor(15,0);printf (" ["); printf (Rus("íåò"));SetColor(15,0);printf ("]");}
else{ GotoXY(24,16);SetColor(15,0);printf ("["); printf (Rus("äà"));printf ("] ");
GotoXY(31,16);SetColor(15,0);printf (" [");SetColor(0,2);printf (Rus("íåò"));SetColor(15,0);printf ("]");}
break;}
case 77: {f=f*(-1);
if (f==1){GotoXY(24,16);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("äà"));SetColor(15,0);printf ("] ");
GotoXY(31,16);SetColor(15,0);printf (" ["); printf (Rus("íåò"));SetColor(15,0);printf ("]");}
else{ GotoXY(24,16);SetColor(15,0);printf ("["); printf (Rus("äà"));printf ("] ");
GotoXY(31,16);SetColor(15,0);printf (" [");SetColor(0,2);printf (Rus("íåò"));SetColor(15,0);printf ("]");}
break;}
}
}
else {switch(code)
{
case 13:{GotoXY(24,14); SetColor(0,0);printf (Rus(" "));
GotoXY(24,16);printf (" ");
if(f==1) k=1; vih=1; break;}
}
}
} while (vih==0);
break;}
}
int mas[20][2], flag,sh=0, a,b;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
if(pole[i][j]==1)
{
if(i>0)if(pole[i-1][j]==2){mas[sh][0]=i-1;mas[sh][1]=j; sh++;
if(i>1)if(pole[i-2][j]==2){mas[sh][0]=i-2;mas[sh][1]=j;sh++;
if(i>2)if(pole[i-3][j]==2){mas[sh][0]=i-3;mas[sh][1]=j; sh++;}}}
if(i<9)if(pole[i+1][j]==2){mas[sh][0]=i+1;mas[sh][1]=j; sh++;
if(i<8)if(pole[i+2][j]==2){mas[sh][0]=i+2;mas[sh][1]=j;sh++;
if(i<7)if(pole[i+3][j]==2){mas[sh][0]=i+3;mas[sh][1]=j; sh++;}}}
if(j>0)if(pole[i][j-1]==2){mas[sh][0]=i;mas[sh][1]=j-1; sh++;
if(j>1)if(pole[i][j-2]==2){mas[sh][0]=i;mas[sh][1]=j-2;sh++;
if(j>2)if(pole[i][j-3]==2){mas[sh][0]=i;mas[sh][1]=j-3; sh++;}}}
if(j<9)if(pole[i][j+1]==2){mas[sh][0]=i;mas[sh][1]=j+1; sh++;
if(i<8)if(pole[i][j+2]==2){mas[sh][0]=i;mas[sh][1]=j+2;sh++;
if(i<7)if(pole[i][j+3]==2){mas[sh][0]=i;mas[sh][1]=j+3; sh++;}}}
}
}
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{b=0;
if(pole[i][j]==2)
{for(a=0;a<sh;a++)
if(i==mas[a][0]&&j==mas[a][1])
b=1;
if(b==0)
{
if(i>0){if(pole[i-1][j]==0){pole[i-1][j]=3;}}
if(i<9){if(pole[i+1][j]==0){pole[i+1][j]=3;}}
if(j>0){if(pole[i][j-1]==0){pole[i][j-1]=3;}}
if(j<9){if(pole[i][j+1]==0){pole[i][j+1]=3;}}
if(i>0&&j>0){if(pole[i-1][j-1]==0){pole[i-1][j-1]=3;}}
if(i>0&&j<9){if(pole[i-1][j+1]==0){pole[i-1][j+1]=3;}}
if(i<9&&j<9){if(pole[i+1][j+1]==0){pole[i+1][j+1]=3;}}
if(i<9&&j>0){if(pole[i+1][j-1]==0){pole[i+1][j-1]=3;}}
}
}
}
iper=x;jper=y;
GotoXY(e,y); SetColor(0,14);printf (" ");
GotoXY(e,y+1); SetColor(0,14);printf (" ");
for (i=0,x=1;i<10,x<21;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);switch(pole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 2:SetColor(0,12);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;
}
GotoXY(x,y+1);switch(pole[i][j]){
case 0:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 1:if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}break;
case 2:SetColor(0,12);printf (" ");break;
case 3: SetColor(0,11);printf (" ");break;}
}
x=iper;y=jper;
udar=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(pole[i][j]==2||pole[i][j]==2)
udar++;
end=0; if(udar==20)
{f=1;pop=0;}
if (k==1)
{ udar=-1; f=1;} }
GotoXY(20,20);
printf("%d",udar); }while((f!=1||pop!=0));
return udar;
}
int main()
{
int pole[10][10],mypole[10][10],x,y,ui,ud[2],hod[1];
int i,j,m,k;
keybd_event(VK_MENU,0x38,0,0); //press ALT
keybd_event(VK_RETURN,0x1c,0,0); //press ENTER
keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); //release ENTER
keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); //release ALT
do{m=menu();ui=0;if (m==1)
{SetColor(0,0);
system ("cls");
int f=1;
GotoXY(30,10); SetColor(15,0);printf (Rus("Расставить корабли"));
GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("автоматически"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("вручную"));SetColor(15,0);printf ("]");
do {k=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 75: {f=f*(-1);
if (f==1){GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("автоматически"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("вручную"));SetColor(15,0);printf ("]");}
else{ GotoXY(23,13);SetColor(15,0);printf ("["); printf (Rus("автоматически"));printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("вручную"));SetColor(15,0);printf ("]");}
break;}
case 77: {f=f*(-1);
if (f==1){GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("автоматически"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("вручную"));SetColor(15,0);printf ("]");}
else{ GotoXY(23,13);SetColor(15,0);printf ("["); printf (Rus("автоматически"));printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("вручную"));SetColor(15,0);printf ("]");}
break;}
}
}
else {switch(code)
{
case 13: k=1; break;
}
}
}
while (k==0);
if (f==1){sheeps(mypole);}
else {SetColor(0,0);
//vivod(pole);
ui=ras(mypole);}
if (ui==0){
SetColor(0,0);
system("cls");
GotoXY(30,10);
SetColor(15,0);
printf (Rus("Расстановка кораблей"));
for (i=1;i<=100;i++)
{
GotoXY (62,15);
SetColor(15,0);printf ("%d%%",i);
if (i%2==0)
{GotoXY (10+(i/2),15);
SetColor(0,15);printf (" ");
sheeps(pole);}Sleep(50);
}
SetColor(0,0);
system ("cls");
f=1;
GotoXY(30,10); SetColor(15,0);printf (Rus("Кто ходит первым?"));
GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("компьютер"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("игрок"));SetColor(15,0);printf ("]");
do {k=0;
int code =getch();
if (code == 224)
{
code = getch();
switch(code)
{
case 75: {f=f*(-1);
if (f==1){GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("компьютер"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("игрок"));SetColor(15,0);printf ("]");}
else{ GotoXY(23,13);SetColor(15,0);printf ("["); printf (Rus("компьютер"));printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("игрок"));SetColor(15,0);printf ("]");}
break;}
case 77: {f=f*(-1);
if (f==1){GotoXY(23,13);SetColor(15,0);printf ("[");SetColor(0,2); printf (Rus("компьютер"));SetColor(15,0);printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("["); printf (Rus("игрок"));SetColor(15,0);printf ("]");}
else{ GotoXY(23,13);SetColor(15,0);printf ("["); printf (Rus("компьютер"));printf ("]");
GotoXY(43,13);SetColor(15,0);printf ("[");SetColor(0,2);printf (Rus("игрок"));SetColor(15,0);printf ("]");}
break;}
}
}
else {switch(code)
{
case 13: k=1; break;
}
}
} while (k==0);
int chislocomp=0,chislomy=0;
SetColor(15,0);
system("cls");
printf("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBB\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xba"); printf("\t\t ");printf("\xba\n");
printf("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBC\n");
GotoXY(40,0);printf("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBB\n");
GotoXY(40,1);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,2);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,3);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,4);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,5);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,6);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,7);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,8);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,9);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,10);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,11);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,12);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,13);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,14);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,15);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,16);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,17);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,18);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,19);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,20);printf("\xba"); printf("\t\t ");printf("\xba\n");
GotoXY(40,21);printf("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBC\n");
for (i=0,x=1;i<10,x<21;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y); if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
GotoXY(x,y+1); if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}
}
for (i=0,x=41;i<10,x<61;i++,x=x+2)
for (j=0,y=1;j<10,y<21;j++,y=y+2)
{
GotoXY(x,y);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
GotoXY(x,y+1);if(mypole[i][j]==1){SetColor(0,12);printf (" ");}else {if((j+i)%2!=0) {SetColor(0,1);printf (" ");} else{SetColor(0,9);printf (" ");}}
}
GotoXY(25,8);SetColor(15,0);printf (Rus("принять-enter"));
GotoXY(22,9);SetColor(15,0);printf (Rus("управление-стрелки"));
GotoXY(26,10);SetColor(15,0);printf (Rus("Выход-Esc"));
GotoXY(24,12);SetColor(15,0);printf (Rus("окно сообщений"));
GotoXY(23,13);printf("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBB\n");
GotoXY(23,14);printf("\xba"); printf("\t ");printf("\xba\n");
GotoXY(23,15);printf("\xba"); printf("\t ");printf("\xba\n");
GotoXY(23,16);printf("\xba"); printf("\t ");printf("\xba\n");
GotoXY(23,17);printf("\xba"); printf("\t ");printf("\xba\n");
GotoXY(23,18);printf("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xBC\n");
ud[0]=-3;ud[1]=-3;
while (chislocomp<20&&chislomy<20)
{
if(chislomy==-1){break;}
if(chislocomp!=20&&chislomy!=20)
{
if (f==1)
{
chislocomp=comp(mypole,chislocomp,ud,hod);
f=f*(-1);
}
else
{
chislomy=player(pole,chislomy);
f=f*(-1);
}
}
}
SetColor(0,0);system("cls");
if(chislocomp==20)
{GotoXY(33,14); SetColor(0,12);
printf(Rus("Вы проиграли"));fflush(stdin);getch();fflush(stdin);}
if(chislomy==20)
{GotoXY(33,14);SetColor(0,12);
printf(Rus("Вы выиграли!"));fflush(stdin);getch();fflush(stdin);}
}}
// vivod(mypole);
}while (m==1);
}