{//на столбик B
case 'B' : {//сохраняем в памяти //объект(диск и его номер) на столбике A, ординаты берем //из соотв. массива
getimage(getmaxx()/4-120,arr_A[n-1].y1,getmaxx()/4+11,arr_A[n-1].y2,ukaz);
setfillstyle(1,0);
//стираем его со столбика A
bar(getmaxx()/4-120,arr_A[n-1].y1,getmaxx()/4+11,arr_A[n-1].y2);
setfillstyle(1,5);
//снова прорисовываем часть //столбика A, где был диск
bar(getmaxx()/4-40,arr_A[n-1].y1,getmaxx()/4-39,arr_A[n-1].y2);
//начиная с низа столбика B до его //верхушки ищем свободное местодля переносимого диска, //анализируя цвет
for (i=1;i<=164;i=i+4) if (getpixel(getmaxx()/4*2,getmaxy()-55-i)==5)
{//если оно найдено,то
//в соотв. эл-т //массива запоминаем новые ординаты переносимого диска
arr_B[n-1].y1=getmaxy()-55-i-8;
arr_B[n-1].y2=getmaxy()-55-i;
setfillstyle(1,0);
//стираем часть //столбика B, куда будет перенесен диск
bar(getmaxx()/4*2,arr_B[n-1].y1,getmaxx()/4*2+1,arr_B[n-1].y2);
//и, наконец, //вставляем из памяти объект в найденное место
putimage(getmaxx()/4*2-80,arr_B[n-1].y1,ukaz,1);
break;
}
} break;
//далее все аналогично
//на столбик C
case 'C' : {getimage(getmaxx()/4-120,arr_A[n-1].y1,getmaxx()/4+11,arr_A[n-1].y2,ukaz);
setfillstyle(1,0);
bar(getmaxx()/4-120,arr_A[n-1].y1,getmaxx()/4+11,arr_A[n-1].y2);
setfillstyle(1,5);
bar(getmaxx()/4-40,arr_A[n-1].y1,getmaxx()/4-39,arr_A[n-1].y2);
for (i=1;i<=164;i=i+4) if (getpixel(getmaxx()/4*3+40,getmaxy()-55-i)==5)
{
arr_C[n-1].y1=getmaxy()-55-i-8;
arr_C[n-1].y2=getmaxy()-55-i;
setfillstyle(1,0);
bar(getmaxx()/4*3+40,arr_C[n-1].y1,getmaxx()/4*3+41,arr_C[n-1].y2);
putimage(getmaxx()/4*3+40-80,arr_C[n-1].y1,ukaz,1);
break;
}
} break;
} break;
//диск переносится со столбика B