Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите пожалуйста переделать программу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
чурмак
Данная программа, из одномерного массива делает в матрицу 8х8 и печатает на экране змейкой. А мне нужно чтобы одномерный массив сформировывался в двумерный, а потом только выводился на экран.

program SnakeMatrix; 

uses 
  crt; 

var 
  data  : array[0..63] of integer; 


procedure fillDataSimple; 
var 
  i: integer; 
begin 
  for i := 0 to 63 do begin 
    data[i] := i + 1; 
  end; 
end; 

procedure proceedCoords(var x, y, dx, dy: integer);
var
  x1, y1: integer;
  dx1, dy1: integer;
  xOut, yOut: boolean;
begin

  if ((x = 7) and (y = 7)) then begin
    x := 0;
    y := 0;
    dx := -1;
    dy := 1;
  end else begin
    x1 := x + dx;
    y1 := y + dy;

    xOut := ((x1 < 0) or (x1 > 7));
    yOut := ((y1 < 0) or (y1 > 7));

    if xOut then begin
      y := y + 1;
      dx := -dx;
      dy := -dy;
    end else if yOut then begin
      x := x + 1;
      dx := -dx;
      dy := -dy;
    end else begin
      x := x1;
      y := y1;
    end;
  end;

end;


var
  x, y: integer;
  dx, dy: integer;
  i, j: integer;
begin
  clrscr;

  fillDataSimple;

  x := 0;
  y := 0;
  dx := -1;
  dy := 1;

  for i := 0 to 63 do begin
    gotoxy(5 * x + 1, 2 * y + 1);
    delay(15000);
    write(data[i]);
    proceedCoords(x, y, dx, dy);
  end;

  readkey;

end.
volvo
Основной цикл меняешь так:

var
  matrix : array[0 .. 7, 0 .. 7] of integer;

...

  for i := 0 to 63 do begin
    matrix[y, x] := data[i];
    proceedCoords(x, y, dx, dy);
  end;

  { И печатаешь результат }
  for i := 0 to 7 do begin
    for j := 0 to 7 do
      write(matrix[i, j]:4);
    writeln; writeln;
  end;

zara44
Чермак ты чтоли)))))? Переделываешь)))

М
для личных сообщений есть ПМ

чурмак
Огромное спасибо! А не подскажешь где прописать строчку gotoxy(5 * x + 1, 2 * y + 1);
чтобы массив змейкой появлялся? Или изменить эту строчку как-то?

Добавлено через 1 мин.
да
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.