program Hantower(INPUT,OUTPUT); uses crt,graph; var gd,gm:integer; er:integer; n:integer; i:integer; A:ARRAY[1..10]OF INTEGER; abc:array[1..3]of integer; x,y:array[1..3]of integer; procedure stolb; begin SETCOLOR(14); OUTTEXTXY(230,20,' HANOISKAYA BASHNYA '); line(100,400,100,100); line(300,400,300,100); line(500,400,500,100); LINE(0,400,640,400); end; procedure draw(h:integer); begin for i:=h downto 1 do begin setfillstyle(1,A[i]); bar(x[1]-i*10,y[1]-20,x[1]+i*10,y[1]); y[1]:=y[1]-20; end; abc[1]:=y[1]; abc[2]:=400; abc[3]:=400; STOLB; readln; end; procedure disk(h,f,t:integer); begin stolb; setfillstyle(1,0); bar(x[f]-h*10,abc[f],x[f]+h*10,abc[f]+20); abc[f]:=abc[f]+20; setfillstyle(1,A[H]); bar(x[t]-h*10,abc[t],x[t]+h*10,abc[t]-20); abc[t]:=abc[t]-20; stolb; DELAY(33000); end; procedure tow(h:integer;f,t, v:integer); begin if h=1 then disk (h,f,t) else begin tow (h-1,f,v,t); disk(h,f,t); tow(h-1,v,t,f); end; end; begin CLRSCR; x[1]:=100;x[2]:=300;x[3]:=500; y[1]:=400;y[2]:=y[1];y[3]:=y[1]; writeln(' vvedite kolichestvo diskov '); readln(n); FOR I:=1 TO N DO A[I]:=I; gd:=detect; initgraph(gd,gm,'G:\'); er:=graphresult; stolb; draw(n); tow(n,1,3,2); readln; closegraph; end.
Как переделать реализацию алгоритма в игру? Что надо подправить и.т.д? То есть в данном случае "игра" сама передвигает диски, а мне нужно чтобы ей управлял польз-ь...
Сообщение отредактировано: Needhelp - 11.04.2007 12:51