0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
bool tblmove(tbltype &tbl, tblmoveT move)
{
tblpos emptypos = tblgetempty(tbl);
tblelmnt elmnt;
switch(move)
{
case UP:
if(emptypos.i == tbl.begin()) break;
elmnt = (emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j));
(emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case DOWN:
if(emptypos.i+1 == tbl.end()) break;
elmnt = (emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j));
(emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case LEFT:
if(emptypos.j == (emptypos.i)->begin()) break;
elmnt = *(emptypos.j-1);
*(emptypos.j-1) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case RIGHT:
if(emptypos.j+1 == (emptypos.i)->end()) break;
elmnt = *(emptypos.j+1);
*(emptypos.j+1) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
}
return false;
}
кусок из самопальных пятнашек. stl только усугибило картину. тошнотворно....
Запостил:
guest ,
06.04.2009 (Updated 24.03.2018 )
Комментарии (0) RSS