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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2015, 19:25   #1
Kognor
 
Регистрация: 11.12.2015
Сообщений: 3
По умолчанию не управляемое движение по двумерному массиву

Дана матрица n на m
нужно сделать с помощью процедуры не управляемое движение по двумерному массиву для игры, для монстров
Kognor вне форума Ответить с цитированием
Старый 12.12.2015, 19:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Какого рода движение?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2015, 19:56   #3
Kognor
 
Регистрация: 11.12.2015
Сообщений: 3
По умолчанию

по квадрату если можно или просто по горизонтали ли вертикали
Kognor вне форума Ответить с цитированием
Старый 12.12.2015, 20:00   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И шаг какой?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.12.2015, 21:08   #5
Kognor
 
Регистрация: 11.12.2015
Сообщений: 3
По умолчанию

у меня один блок 64 на 43
шаг в двумернном масиве нужен сдвиг на 1 единицу по массиву
Kognor вне форума Ответить с цитированием
Старый 12.12.2015, 21:15   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Random(4) - 0-влево, 1-вверх, 2-вправо,3-вниз. Если мешает граница - повторить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.12.2015, 10:38   #7
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Вот по периметру (образец):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Kvadrat(x,y:integer;c:tColor);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  n=64;
  m=43;
  delta=8;

var
  Form1: TForm1;
  x,y,dx,dy:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
   Label1.Caption:='';
   Label1.AutoSize:=false;
   Label1.Color:=clWhite;
   Label1.Width:=n*delta;
   Label1.Height:=m*delta;
   x:=0;
   y:=0;
   dx:=1;
   dy:=0;
end;

procedure TForm1.Kvadrat(x, y: integer; c: tColor);
begin
   x:=x*delta;
   y:=y*delta;
   With Label1.Canvas do
   begin
      Pen.Color:=c;
      Brush.Color:=c;
      Rectangle(x,y,x+delta,y+delta);
   end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Kvadrat(x,y,Label1.Color);
   x:=x+dx;
   y:=y+dy;
   If x>n-1 then
   begin
      x:=x-dx;
      dx:=0;
      dy:=1;
   end;
   If y>m-1 then
   begin
      y:=y-dy;
      dx:=-1;
      dy:=0;
   end;
   If x<0 then
   begin
      x:=x+1;
      dx:=0;
      dy:=-1;
   end;
   If y<0 then
   begin
      y:=y+1;
      dx:=1;
      dy:=0;
   end;
   Kvadrat(x,y,clRed);
end;

end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
malloc (выделение памяти двумерному массиву) Lifeda92 Общие вопросы C/C++ 18 28.08.2014 00:17
Вопрос по двумерному массиву EdvardAvd Помощь студентам 16 26.11.2013 17:24
как пройти по двумерному массиву realgleb Общие вопросы C/C++ 9 10.05.2012 21:36
процедура к двумерному массиву Alenaa Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2011 19:34
Поиск числа по двумерному массиву. Ibanez Wizard Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 31.03.2011 13:52