|
|
crt_graph.PAS |
|
{* Перекатывающийся кубик *}Unit CRT_GRAPH;Interface Implementation Begin writeln('Для изменения движения кубика требуется нажать на "p". Для выхода жмем "e"'); End. Program pas; Uses crt_graph.pas; {* Эту строку можно удалить *} Uses crt, graph; {* Подключаем внешние файлы *} label 1, 2; Var {* Необходимые переменные *} rx : integer; ry : integer; r : integer; y0 : integer; x1 : integer; x2 : integer; x3 : integer; x4 : integer; y1 : integer; y2 : integer; y3 : integer; y4 : integer; a : integer; k : integer; i : integer; p : real; c : char; gm : integer; gd : integer; Procedure sqare(col : integer); p1 : integer); q1 : integer); p2 : integer); q2 : integer); p3 : integer); q3 : integer); p4 : integer); q4 : integer); Var {* Необходимые переменные *} p1 : integer); q1 : integer); p2 : integer); q2 : integer); p3 : integer); q3 : integer); p4 : integer); q4 : integer); Begin p1 := i + 50 - round(70 * sin((a + 45) * p)); q1 := 200 - round(70 * cos((a + 45) * p)); p2 := i + 50 - round(50 * sin(a * p)); q2 := 200 - round(50 * cos(a * p)); p3 := i + 50; q3 := 200; p4 := i + 50 - round(50 * cos(a * p)); q4 := 200 + round(50 * sin(a * p)); Var {* В работе нам потребуются переменные: *} p1 : integer); q1 : integer); p2 : integer); q2 : integer); p3 : integer); q3 : integer); p4 : integer); q4 : integer); Begin p1 := i - round(50 * sin(a * p)); q1 := 200 - round(50 * cos(a * p)); p2 := i + round(70 * cos((a + 45) * p)); q2 := 200 - round(70 * sin((a + 45) * p)); p3 := i + round(50 * cos(a * p)); q3 := 200 - round(50 * sin(a * p)); p4 := i; q4 := 200; End; Begin clrscr; {* Стираем всё с экрана *} k := 1; p := pi / 180; gd := detect; initgraph(gd, gm, ' '); line(0, 201, getmaxx, 201); i := - 50; 2 : Repeat If k = 1 Then For a := 0 Downto - 90 Do Begin change1(x1, y1, x2, y2, x3, y3, x4, y4); sqare(white, x1, y1, x2, y2, x3, y3, x4, y4); delay(50); sqare(black, x1, y1, x2, y2, x3, y3, x4, y4); End Else If k = - 1 Then For a := 0 To 90 Do {* Увеличиваем a от 0 до 90 с шагом 1 *} Begin change2(x1, y1, x2, y2, x3, y3, x4, y4); sqare(white, x1, y1, x2, y2, x3, y3, x4, y4); delay(5); sqare(black, x1, y1, x2, y2, x3, y3, x4, y4); End; i := i + k * 50; Until (i > getmaxx + 50) Or (igetmaxx + 50 Then i := - 50 Else i := getmaxx + 50; If ord(c) = ord('p') Then Begin k := k * ( - 1); c := 'q'; End Else If ord(c) = ord('e') Then Goto 1 Else c := 'q'; Goto 2; 1 : closegraph; End...... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|