1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Данная программа, из одномерного массива делает в матрицу 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;