do
{
printf("vvedite kolichestvo lis\n"); //ввод количества лис
scanf("%i",&kol); system("cls");
if((kol>64)||(kol<0)){ printf("nevernoe kolichestvo lis\n");system("pause");system("cls");}
}
while((kol>64)||(kol<0));
for(i=0;i<kol;i++)
{ s=1;
while (s!=0)
{p=rand()%64;
if(a[p]!=1)
{a[p]=1; s=0;}
}
}
u=0;
printf("rasstavte v levoe pole %i lis\n",kol);
system("pause");
while(u!=kol)
{
pech_gl(br,n,dd);
er=0;
while(er<1) //заполнение своей таблицы
{
printf("vvedite coord lisi ");
scanf("%i%i",&str1,&sto1); str1--;sto1--;
if((str1<0)||(str1>7)||(sto1<0)||(sto1>7))
{printf("\n nevernaya koordinata\n");}
else er=1;
if((er==1)&&(d[str1*n+sto1]!=45))
{ printf("\n vi suda yzhe stavili\n"); er=0;}
}
w[str1*n+sto1]=1; d[str1*n+sto1]=76;
system("cls"); u++;
}
printf("IGRA NACHINAETSYA\n");//начало игры
system("pause");
system("cls");
pech_gl(br,n,dd); kol1=kol;
int z;//параметр цикла
while((kol!=0)&&(kol1!=0))//главный цикл, завершение которого являеться завершение игры
{z=0;
while(z<1)
{
printf("vvedite coord lisi protivnika "); //ввод координат
scanf("%i%i",&str,&sto); str--;sto--;
if((str<0)||(str>7)||(sto<0)||(sto>7))
{printf("\n nevernaya koordinata\n");}
else z=1;
if((z==1)&&(b[str*n+sto]!=120))
{ printf("\n vi suda yzhe strelyali\n"); z=0;}
}
b[str*n+sto]=summa(str,sto,n,c); shag++;
if(a[str*n+sto]==1) //убийство лисы с обновлением всех полей
{ybil(c,br,n,str,sto); kol--;
kolich[kol_ybit]=str*n+sto; str_y[kol_ybit]=str; sto_y[kol_ybit]=sto;kol_ybit++; //обновление после попадания
if(kol_ybit>1) for(i=0;i<kol_ybit;i++)
{
int aa=str_y[i],bb=sto_y[i];
b[kolich[i]]=summa(aa,bb,n,c);
b[kolich[i]]+=20;
}
if(kol_strel>1) for(i=0;i<kol_strel;i++)
{
int xx=str_s[i],yy=sto_s[i];
b[strel[i]]=summa(xx,yy,n,c);
}
}
else {strel[kol_strel]=str*n+sto; str_s[kol_strel]=str; sto_s[kol_strel]=sto; kol_strel++;}//для обновления после попадания
int vv=0,ee,str_c, sto_c,ppp; // ходы компьютера + стратегия vv-параметр ee-переменая на ячейку поля str_c и sto_c строка и столбец в который стреляет
//компьютер
while(vv==0)
{ par3=0;
if(par==0)
{str_c=rand()%8;ppp=str_c;
sto_c=rand()%8;
}
else
if((par1==1)&&(per1<7))
{
per1++;
str_c=per1;
if(summa(str_c,sto_c,n,ww)==0) {par1=0; par2=1;}
}
else
if((par2==1)&&(per2<7))
{
per2++;
str_c=ppp;
sto_c=per2;
if(summa(str_c,sto_c,n,ww)==0) {par2=0; par=0;}
}
else par=0;
ee=str_c*n+sto_c;
ss=summa(str_c,sto_c,n,ww);
for(i=0;i<ii;i++)
{
if(ee==iskl[i]) par3=1; //проверка есть ли элемент в массиве исключения
}
if(par3!=1)//если есть то повторяем
{
if(ss==0) //составление таблицы исключения
{
if(parz==0)
{
for(i=0;i<8;i++)
{
iskl[ii]=str_c*n+i; ii++;
iskl[ii]=i*n+sto_c; ii++;
}
parz=1;
}
else
{
for(i=0;i<8;i++)
{
par_isk1=0;
par_isk2=0;
for(j=0;j<ii;j++)
{
if(iskl[j]==str_c*n+i) par_isk1=1;
}
if(par_isk1!=1)
{
iskl[ii]=str_c*n+i; ii++;
}
for(j=0;j<ii;j++)
{
if(iskl[j]==i*n+sto_c) par_isk2=1;
}
if(par_isk2!=1)
{
iskl[ii]=i*n+sto_c; ii++;
}
}
}
}
if((d[ee]==45)||(d[ee]==76))
if(w[ee]==1){kol1--; w[ee]=0; d[ee]=33;vv++;}
elseif(ss>0)
{
par=1; par1=1; d[ee]=120;vv++;
}
else {par==0;par1==0; per1=-1; per2=-1; d[ee]=120;vv++;}
}
}
system("cls");
printf("kol-vo shagov = %i ostalos lis sopernika = %i\t\t ostalos vashih lis =%i",shag,kol, kol1);
pech_gl(br,n,dd);
}
system("cls");if(kol==0)printf("POBEDA!!!!!!\n"); else printf("PORAZHENIE!!!!!!\n"); system("pause");//конец программы
}