- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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 только усугибило картину. тошнотворно....
Комментарии (0) RSS
Добавить комментарий