void fill::start() { qsrand(time(NULL)); for(int i=0;i<4;i++)//пробегаемся по массиву, с каждой итерацией будем получать количество клеток, которые нужно занять. { int s = ships[i]; //n=i+1; for(int m=1; m < i+1;m++)//количество кораблей, берём из массива { int g=qrand()%2;//1 - горизонталь, 0 - вертикаль. do { l=qrand()%6; k=qrand()%6; } while(checkuser[l][k]!=0 && checkuser[l++][k++]!=0 &&checkuser[l--][k++]!=0 && checkuser[l++][k--]!=0&&checkuser[l--][k--]!=0&&checkuser[l][k++]!=0&&checkuser[l][k--]!=0&&checkuser[l++][k]!=0&&checkuser[l--][k]!=0); /*if(k > 5 || l > 5)//если вываливаемся из массива, то уменьшаем стартовые точки. { k=k-4; l=l-4; }*/ if(g==0) { int f=0; while(f <= s)//заполняем пока не придём к длине корабля { bu[l][k+f]->setStyleSheet(QString::fromUtf8("background-color: green;")); checkuser[l][k+f]=1; f++; } } if(g==1) { int f=0; while(f <= s) { bu[l+f][k]->setStyleSheet(QString::fromUtf8("background-color: green;")); checkuser[l+f][k]=1; f++; } } } } startb->setDisabled(true); }