29 мая 2013 (OFF) _467_DARKSIDER1 :

Азы MIDletPascal. Урок 4

Итак,после долгого перерыва я решил написать новый урок по языку MIDletPascal.
В этом уроке мы разберем работу с установкой рандомных (случайных) значений переменных,их использование,а также,работу с массивами.

1). Установка рандомных значений переменных нужна для создания игр,где,например, при каждом её запуске генерируется новый и совершенно другой уровень по сравнению с другими.

Команды для работы с рандомными значениями:
-random(x)+y; - установка случайного значения в пределах от числа y до числа,определяемого формулой (x-1)+y.
-randomize; - запуск генератора случайных чисел (в принципе,он вообще не нужен,эта команда перекочевала в этот язык программирования из Turbo Pascal).

2).Массивы могут быть одномерными и многомерными.
Пример объявления одномерного массива в блоке var (где x-любое целое число):

massiv: array [0..x] of integer;

Пример объявления многомерного массива:

massiv1: array [0..x,0..x] of integer;

Замечание: MIDletPascal очень плохо "переваривает" многомерные массивы,поэтому советую объявлять массив так,чтобы конечная величина в "ячейках" массива была одинаковой.

Итак,давайте рассмотрим пример работы со всеми этими элементами.
В качестве примера сделаем программу-"калейдоскоп",в которой при нажатии кнопки 5 появляются несколько различных фигур разного цвета и размера.

Объявляем нужные нам переменные:

var
r,g,b,set_f,x,y,x_d,y_d:array [0..2] of integer;
key:integer;
i:integer;


Объясняю,что представляет каждая переменная:
r,g,b-красный,зеленый и синий цвета соответственно
set_f-индикатор,который будет отвечать за то,какую фигуру программа будет выбирать для рисования
x,y,x_d,y_d-начальные и конечные координаты x и y.
key-нажатая клавиша
i-вспомогательная переменная.

Затем мы начинаем писать саму главную программу.
Сначала объявляем начальные значения некоторых переменных и заливаем экран черным цветом:

Begin
for i:=0 to 2 do////для значений ячеек массива от ячейки №0 до №2...
begin
x[i]:=0;
y[i]:=0;
set_f[i]:=0;
end;/////....начальные координаты x и y равны нулю,индикатор выбранной фигуры равен нулю
setcolor(0,0,0);
fillrect(0,0,getwidth,getheight);////заливаем экран черным цветом


Затем идет цикл,в котором будет выполняться вся работа программы:

repeat
key:=getkeyclicked;
if (key=KE_KEY5) then////Если нажата клавиша 5....
begin
for i:=0 to 2 do////....для значений ячеек массива от ячейки №0 до №2...
begin
r[i]:=random(250);
g[i]:=random(250);
b[i]:=random(250);
x[i]:=random(getwidth);
y[i]:=random(getheight);
set_f[i]:=random(4);
x_d[i]:=random(30);
y_d[i]:=random(30);
setcolor(r[i],g[i],b[i]);//////....устанавливается рандомные значения координат всех фигур,их цвет по палитре rgb и вид фигуры.
if (set_f[i]=0) then fillrect(x[i],y[i],x_d[i],y_d[i]);/////Если индикатор вида фигуры равен нулю,то рисуем закрашенный прямоугольник....
if (set_f[i]=1) then fillellipse(x[i],y[i],x_d[i],y_d[i]);/////...а если равен 1,то рисуем закрашенный эллипс...
if (set_f[i]=2) then drawrect(x[i],y[i],x_d[i],y_d[i]);
if (set_f[i]=3) then drawellipse(x[i],y[i],x_d[i],y_d[i]);///....а если равен 2 или 3,то рисуем контур прямоугольника или контур эллипса соответственно
end;
end;
repaint;////перерисовка экрана
delay(1);Задержка для... Ну вы знаете :)
until key=KE_KEY0;////Заканчиваем работу программы по нажатии кнопки 0.
End.


В самом начале дневника изображен скриншот того,что должно получится.
Ссылка на саму программу и исходники: Тыц
Всем спасибо за внимание! :)
Всем пока.
Метки: MIDletPascal, уроки

Комментарии (6)

array [0..2] of integer; а обязательно квадратные скобки нужны?
А как же иначе?
*a kak v jar zdelat* а как в jar зделать
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
Моя Ферма
Сотни растений и животных, множество интересных...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play