Привет, Всем Пытаюсь написать игру ханойские башни для сдачи курсовой (заочник) знаний пока не хватает, но тем что есть пытаюсь воспользоваться
Алгоритм такой: Все пастроенно на массиве N строк и 3 столбца, далее этот массив заполняется так: 1 0 0 2 0 0 ....... N 0 0
далее нажатиями клавиш я перезаполняю массив по принципу ханойской башни. В результате добавлю гафическое отображение всех этих действий. диски будут привязаны к элементам массива, строкам и столбцам. Вообщем пока не доработанно из за ожного сбоя. Внимание вопрос:
вот исходник алгоритма заполнения матрици.
uses crt; var hb:array[1..9,1..3] of integer; stop:boolean; key:char; i,j,n,m,k,l,a:integer;
begin clrscr; write('vvedite chislo diskov '); readln(m); {writeln;} l:=1; k:=1; n:=3; a:=0; for i:=1 to m do begin for j:=1 to n do begin hb[i,j]:=k; write(hb[i,j]:3); k:=0; end; l:=l+1; k:=k+l; writeln; end; writeln; {readkey;} writeln; stop:=false; while stop=false do begin if keypressed then key:=readkey; if (key='q') or (key='Q') then stop:=true; if (key='1') then j:=1; if (key='2') then j:=2; if (key='3') then j:=3; {принажамтии клавиши вверх "а" присваевается знаяение элемента матрици вот тут то и проблема, привыборе второго столбца, в нем все элементы "0", "а" присваевается значение 10, привыборе третьего столбца "а" присваевается значение 3 откуда эти значения беруться я вообще понять не могу помогите пожалуйста разобраться в принципе из за этого графическое представление всего этого действия и остановилось} if (ord(key)=72) then begin i:=0; repeat begin i:=i+1; a:=hb[i,j]; end; until hb[i,j]>0; hb[i,j]:=0; end; if (ord(key)=80) then begin i:=0; repeat begin i:=i+1; end; until (hb[i,j]>0) or (i=m); if hb[i,j]=0 then begin hb[i,j]:=a; a:=0; end else begin if (a>=hb[i,j]) or (a=0) then writeln('NO') else begin i:=i-1; hb[i,j]:=a; a:=0; end; end; end; if (ord(key)=13) then begin for i:=1 to m do begin for j:=1 to n do begin write(hb[i,j]:3); end; writeln; end; writeln(a); end; key:=readkey; end; end.
Как сделю все полностью закончу вывложу полный исходник может кому пригодится
М
При выкладывании кода, пожалуйста, используй теги. Лопарь