#1 10.02.10 12:38
анимация сортировки си
задача поставлена так,нужно анимировать сортиторвку массива.
логика решения такая:
сначала выводиться массив исходный, с некоторой задержкой (delay) поверх него записывается массив с первой перестановкой и т.д., пока не получится отсортированный массив.
какой функцией перезаписать предыдущий вывод?
в настоящее время используется sprintf() для сохранения массива в строку и outtext() для вывода этой строки в цвете.
но sprintf вывод все перестановку в одну строку пока не ограничиться размером экрана.
гуглить не помогло:)
Спасибо за любую помощь.
Offline
#3 10.02.10 14:35
Re: анимация сортировки си
Jaguar, Спаисбо за развернутый комментарий
если применять данный совет "\n - для переноса стоки" к функции sprintf, то эта функция не выводит на экран, а записывает просто в буфер массив, как строку. Это требуется, чтобы выводить цветной шрифт.
если \n использовать в outtext(), то его параметр тока выводимые символы, и спецсимволы он не воспринимает.
В итоге ваших данных недостаточно, для применения в данной программе, то есть их применение просто не возможно, если же вы хотели предложить использовать какие либо другие функции, укажите.
Спасибо.
Исправлено Leto (10.02.10 15:22)
Offline
#4 10.02.10 15:49
Re: анимация сортировки си
Mozg_RUS,
cprintf не работает в графическом режиме,
кода слишком много:)
выкладываю кусок -
Код::
//функция сортировки
цикл прохода массива
.....
//vivod massiva vse prohody
for(j=0;j<8;j++)
{
//cvet menyaemih peremennih
if (A[i]==A[j]||A[i+1]==A[j])
{
setcolor(15); //peremeshaemie
}
else {
setcolor(15);//prostie
}
sprintf(s," %d", A[j]);
outtext(s);//vivodit cvetno, no ne zatiraet prediduchii vivod
delay(50);//zadergka
}
.....//главная функция и так далееИсправлено Leto (10.02.10 15:49)
Offline
#5 10.02.10 15:55
Re: анимация сортировки си
Mozg_RUS,
а вот тут можно поподробнее, ибо при использовании этого счастья тоже идет наложение, может я не правильно использую?
Код::
int x=0, y=10;
//vivod massiva vse prohody
for(j=0;j<8;j++)
{
//cvet menyaemih peremennih
if (A[i]==A[j]||A[i+1]==A[j])
{
setcolor(2); //peremeshaemie
}
else {
setcolor(15);//prostie
}
sprintf(s," %d", A[j]);
outtextxy(x,y,s);//vivodit cvetno, no ne zatiraet prediduchii vivod
delay(50);//zadergka
x=x+20;
}и получается, что они все печатаются друг на друга, но не удаляется предыдущий вывод.
каша в общем получается.
Offline
#9 11.02.10 12:29
Re: анимация сортировки си
Jaguar,
у меня удачно раскрашивается массив и в текстом режиме ( используя графический режим я усложнила себе жизнь:))
Теперь, я хочу, чтобы у меня анимировалась только перестановка элементов в массиве, а не просто массив перезаписывался.
То есть массив весь на экране, а меняются как нить прикольно цифры, которые переставляются.
Не так все просто, как я думала:)
Fatboy, спасибо:)
Offline

