Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2013, 01:43   #1
kiraone
Новичок
Джуниор
 
Регистрация: 09.06.2013
Сообщений: 4
По умолчанию Перевод кода с Паскаля на С#

Всем здравствуйте! очень нужно перевести код с паскаля на с# помогите пожалуйста кто может!!!

Код:
Uses crt, Graph;
Const Xlimit = 639; {Предел экрана по х}
Ylimit = 479; {Предел по у}

Type TFish = object {Объект рыба}
x, y: word; {Координаты}
v: word; {Скорость}
size: word; {Размер}
color: word; {Цвет}
dir: 1..4; {1 - налево, 2 - направо, 3 - вверх, 4 - вниз}
procedure Init (x0, y0: word; v0: word; sz: word; col: word; dir0:
byte);	{инициализация}
procedure Draw; {процедура отрисовки }
procedure Eraze; {Процедура стирания}
procedure Look (var col: word; var l: integer); {процедура поиска
препятствия}
procedure Run; {Процедура движения}
end;

procedure TFish.Init (x0, y0: word; v0: word; sz: word; col: word; dir0: byte);
begin
x:= x0; {Инициализация всех элементов}
y:= y0;
v:= v0;
size:= sz;
color:= col;
dir:= dir0;
Draw;
end;

procedure TFish.Draw;
var dim: integer; {Сдвиг по координате}
begin
SetColor (color); {Устанавливаем цвет}
MoveTo (x, y); {Идём на нос рыбы}
dim:= Round (size/sqrt(2)); {Находим смещение (считаем размер диагональю
прямоугольного треугольника)}
case dir of {Выбираем направление движения и рисуем рыбу в ту сторону носом}
1:
begin
LineTo (x+dim, y+dim);
MoveTo (x, y);
LineTo (x+dim, y-dim);
end;
2:
begin
LineTo (x-dim, y+dim);
MoveTo (x, y);
LineTo (x-dim, y-dim);
end;
3:
begin
LineTo (x+dim, y+dim);
MoveTo (x, y);
LineTo (x-dim, y+dim);
end;
4:
begin
LineTo (x-dim, y-dim);
MoveTo (x, y);
LineTo (x+dim, y-dim);
end;
end;
end;

procedure TFish.Eraze; {Стереть рыбу на текущей позиции}
var dim: integer;
begin
SetColor (0); {Устанавливаем на цвет воды (чёрный)}
MoveTo (x, y); {Дальше всё аналогично}
dim:= Round (size/sqrt(2));
case dir of 
1:
begin
LineTo (x+dim, y+dim);
MoveTo (x, y);
LineTo (x+dim, y-dim);
end;
2:
begin
LineTo (x-dim, y+dim);
MoveTo (x, y);
LineTo (x-dim, y-dim);
end;
3:
begin
LineTo (x+dim, y+dim);
MoveTo (x, y);
LineTo (x-dim, y+dim);
end;
4:
begin
LineTo (x-dim, y-dim);
MoveTo (x, y);
LineTo (x+dim, y-dim);
end;
end;
end;

procedure TFish.Look (var col: word; var l: integer);
var i, dx, dy: integer;
begin
case dir of {Ищем коэффициент смещения по координатным осям}
1:
begin
dx:= -1; dy:= 0;
end;
2:
begin
dx:= 1; dy:= 0;
end;
3:
begin
dx:= 0; dy:= -1;
end;
4:
begin
dx:= 0; dy:= 1;
end;
end;
for i:=1 to 2*size+v do {Проверяем точки на два размера вперёд плюс скорость}
if (GetPixel (x+dx*i, y+dy*i)<>0) then {Если попался цвет не воды}
begin
col:= GetPixel (x+dx*i, y+dy*i); {Запоминаем и выходим}
l:= i;
break;
end;
end;

procedure TFish.Run; {Движение}
var dx, dy: integer;
col: word;
l: integer;
begin
randomize;
while true do {В бесконечном цикле}
begin
case dir of {Вычисляем коэффициент смещения}
1:
begin
dx:= -1; dy:= 0;
end;
2:
begin
dx:= 1; dy:= 0;
end;
3:
begin
dx:= 0; dy:= -1;
end;
4:
begin
dx:= 0; dy:= 1;
end;
end;
l:= -1; {Значение расстояния до препятствия}
Look (col, l); {Ищем препятствие}
if (x+dx*v+size>Xlimit) or (y+dy*v+size>Ylimit) or (l>0)
or (x+dx*v-size<0) or (y+dy*v-size<0) then {Если координаты выходят за
пределы экрана или нашлось препятствие}
begin
Eraze; {Стираем рыбу}
dir:= random (4)+1; {Выбираем новое направление}
continue; {Переходим на следующую итерацию}
end;
Eraze; {Стираем рыбу}
x:=x+dx*v; y:= y+dy*v; {Даём ей новые координаты}
Draw; {Рисуем на новом месте}
delay (9000); {Ждём для эффекта анимации}
end;
end;

Var fish: TFish;
grDriver, grMode, ErrCode: integer;
grPath: string;

begin {пример использования}
grDriver:= VGA; {Режим}
grMode:= VGAHi; {Разрешение 640х480}
grPath:= 'c:	p7'; {Каталог с файлом драйвера egavga.bgi}
InitGraph (grDriver, grMode, grPath);
ErrCode:= GraphResult; {Проверяем, успешна ли инициализация}
if ErrCode<>grOk then {Если нет - выходим из программы}
Begin
Writeln ('Ошибка инициализации графического режима');
Halt (1);
End;
SetColor (2); {Нарисуем препятствие - две зелёные линии}
MoveTo (0, 200);
LineTo (200, 0);
MoveTo (0, 200);
LineTo (200, 200);
fish.Init (300, 200, 5, 50, 4, 1); {Инициализируем рыбу}
fish.Run; {Запускаем движение}
end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.06.2013 в 08:58.
kiraone вне форума Ответить с цитированием
Старый 11.06.2013, 01:44   #2
kiraone
Новичок
Джуниор
 
Регистрация: 09.06.2013
Сообщений: 4
По умолчанию

Определить объект TFish — аквариумная рыбка. Рыбка имеет
координаты, скорость, размер, цвет, направление движения. Методами
объекта являются:
• Init — устанавливает значения полей объекта и рисует рыбу
на экране методом Draw.
• Draw — рисует рыбу в виде уголка с острием в точке Coord и
направленного острием по ходу движения рыбы.
• Look — проверяет несколько точек на линии движения рыбы.
Если хоть одна из них отличается по цвету от воды, возвращаются
ее цвет и расстояние до рыбы.
• Run — перемещает рыбу в текущем направлении на расстояние,
зависящее от текущей скорости рыбы. Иногда случайным
образом меняет направление движения рыбы. Если рыба видит
препятствие, направление движения меняется, пока препятствие
не исчезнет из поля зрения рыбы.
kiraone вне форума Ответить с цитированием
Старый 11.06.2013, 08:40   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Ну и что не получается? А если сам ничего не хочешь, то или во фриланс или в помощь студентам.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода с паскаля на си++. Anna.K Visual C++ 0 20.04.2012 14:30
Перевод из паскаля на СИ Кот Шрёдингера Помощь студентам 0 02.11.2011 20:07
Нужен перевод кода с паскаля на фортран. Cheeelios Помощь студентам 1 06.03.2011 14:27
Перевод с Паскаля на С RamilFaz Общие вопросы C/C++ 3 08.04.2010 14:40
Перевод с Паскаля на С++ MrJenika Помощь студентам 2 20.11.2009 20:42