Skocz do zawartości

puszek

Użytkownik
  • Postów

    2
  • Dołączył

  • Ostatnia wizyta

Osiągnięcia puszek

Newbie

Newbie (1/14)

0

Reputacja

  1. puszek

    [pascal] Hanoi

    Poprostu otwieram paskalowski plik (nazwa.pas) w notatniku i kopiuje (ctrl+c ) i wklejam to tutaj do postu. :lol: Proste prawda.
  2. puszek

    [pascal] Hanoi

    Mam zadanko z pascala rozwiązac wieze hanoi rekurencyjnie i przedstawic sposób działania w trybie graficznym. Kod: program Wieze_Hanoi; uses graph; var karta,tryb,n,ilK,ypocz,gr,j:integer; t :array[1..3,1..12] of integer; tw:array[1..3] of integer; procedure przeloz_krazek(skad, dokad : integer); begin tw[dokad]:=tw[dokad]+1; t[dokad,tw[dokad]]:=t[skad,tw[skad]]; setFillStyle(1,black); setColor(black); bar(skad*200*110-100,ypocz-tw[skad]*gr,t[skad,tw[skad]]*j,gr); t[skad,tw[skad]]:=0; tw[skad]:=tw[skad]-1; setFillStyle(1,t[dokad,tw[dokad]]); bar(dokad*110-100,ypocz-tw[dokad]*gr,t[dokad,tw[dokad]]*j,gr); readLn; end; procedure przeloz(ile, skad, dokad, roboczy : integer); begin if ile=1 then przeloz_krazek(skad, dokad) else begin przeloz(ile-1, skad, roboczy, dokad); przeloz_krazek(skad, dokad); przeloz(ile-1, roboczy, dokad, skad) end; end; begin writeln('podaj ilosc krazkow'); readln(ilk); detectgraph(karta,tryb); initgraph(karta, tryb,''); writeln('Nacisnij dowolny klawisz'); gr:=30; j:=19-ilK; ypocz:=430; for n:=1 to ilK do t[1,n]:=ilK-n+1; tw[1]:=ilK; for n:=1 to tw[1] do begin setfillstyle(1,t[1,n]); bar((1*110-100)+10*n,ypocz-(n*gr),(1*180)-10*n,ypocz-(n*gr)-gr); end; readLn; przeloz(ilK,1,3,2); closeGraph; end. Mam tyle. Program rysuje prostokaty ale ma problem z rysowaniem ich po kazdym następnym ruchu nie wiem jak temu zaradzić i proszę o pomoc. Z góry dzieki
×
×
  • Dodaj nową pozycję...