Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ООП / Задание 01 / Псевдографика / Псевдографика / Sharik
.cpp#include "Sharik.h"
void clField::Draw()
{
draw_rectangle( X0, Y0, X0+W+1, Y0+H+1);
}
//--------------------------------------------
void clField::Put(int X, int Y, char A)
{
if((X<1)||(X>W)||(Y<1)||(Y>H)) return;
set_cursor_pos(X0+X,Y0+Y);
putch(A);
set_cursor_pos(1,1);
}
//====================================================================
//====================================================================
//====================================================================
void clSharik::Step()
{
Hide();
switch(d)
{
case ur:
if(X<W()) X++;
else { X--; d = ul;}
if(Y>1) Y--;
else { Y++; d = (d==ur?dr:dl);}
break;
case dr:
if(X<W()) X++;
else {X--; d = dl;}
if(Y<H()) Y++;
else {Y--; d = (d==dr?ur:ul);}
break;
case dl:
if(X>1) X--;
else {X++; d = dr;}
if(Y<H()) Y++;
else {Y--; d = (d==dl?ul:ur);}
break;
case ul:
if(X>1) X--;
else {X++; d = ur;}
if(Y>1) Y--;
else { Y++; d = (d==ul?dl:dr);}
break;
}
Show();
}
//--------------------------------------------------------
void clSharik::Hide()
{
field->Put(X,Y,' ');
}
//--------------------------------------------------------
void clSharik::Show()
{
field->Put(X,Y,A);
}
//--------------------------------------------------------
Соседние файлы в папке Псевдографика