Wto 14 Paź, 2008 17:42
Tadzik

Mam do napisania program - w i e ż a z H a n o i (piszę tak, bo nie chcę by ktoś to znalazł w google z mojej klasy ).

Na razie mam takie coś:
program wieza;
uses crt;
type tab=array[0..15] of integer;
var n:word;
    A, B, C:tab;

procedure przygotuj(n:word;var A,B,C:tab);
var i:integer;
          begin
          for i:=1 to n do
              A[i]:=n-i+1;
          A[0]:=A[1];
          for i:=1 to n do
              writeln(A[n-i+1]:2,'   ',B[n-i+1],'   ',C[n-i+1]);
          end;

procedure przenies(n:word;var A,B,C:tab);
var i:integer;
          begin
          if n=1 then begin
                      B[0]:=B[0]+1;
                      B[B[0]]:=A[A[0]];
                      A[A[0]]:=0;
                      A[0]:=A[0]-1;
                      end               else begin
                                             przenies(n-1,A,C,B);
                                             B[0]:=B[0]+1;
                                             B[B[0]]:=A[A[0]];
                                             A[A[0]]:=0;
                                             A[0]:=A[0]-1;
                                             przenies(n-1,C,B,A);
                                             end;

          end;

procedure pokaz(n:word; A,B,C:tab);
var i:integer;
          begin
          for i:=1 to n do
              writeln(A[n-i+1]:2,'   ',B[n-i+1],'   ',C[n-i+1]);
          end;

BEGIN
clrscr;
write('Podaj liczbe elementow (max. 15): '); readln(n);
writeln;
clrscr;
przygotuj(n,A,B,C);
przenies(n,A,B,C);
writeln; readln; clrscr;
pokaz(n,A,B,C);
readln;
END.



Prorgam teoretycznie działa - pokazuje mi końcowy wynik. Ale chcę by pokazywał każdy ruch - czyli, że po każdym przesunięciu ma pokazywać teraźniejszy wygląd słupków. Gdzie mam i co mam umieścić, by tak było? Próbowałem paru sposobów, ale wychodzi mi niewiadomoco...



Wto 14 Paź, 2008 20:07
Quester

A możesz mi powiedzieć, na kiedy to? Bo mógłbym się tym zająć, ale nie dzisiaj

Wto 14 Paź, 2008 20:38
Tadzik

Na czwartek.
Za wszelką pomoc z góry dzięki
Jeszcze na koniec chciałbym zmienić wygląd graficzny tego - czyli zamiast cyferek kolorowe belki różnej szerokości. Więc jak ktoś wie jak to zrobić, to też może tu napisać

EDIT Problem jest nadal aktualny Aż do środy

Sob 18 Paź, 2008 13:13
Quester

A tak w ogóle, to fajnie by było, gdybyś podał, o co w ogóle ma w tym programie chodzić...



Sob 18 Paź, 2008 13:53
Tadzik

xD
Program ma rozwiązać problem wieży z Hanoi rekurencyjnie. Tzn. na początku mamy n krążków na słupku A. Ma je przenieść wszystkie na słupek B z wykorzystaniem słupka C, tak, by nie kłaść krążka większego na mniejszy - w każdym ruchu można wziąć tylko jeden krążek. Ten program właśnie ma pokazywać każdy ruch komputera i dojść do wyniku, czyli do tego, by na słupku B były wszystkie krążki. Oczywiście w moim programie za krążek robi liczba

EDIT
No i wymyślił ktoś coś? Bo ten program na jutro

EDIT2
Problem rozwiązany.

[Rozwiązano] RollerCoaster Tycoon 3: Złota Edycja - Extra Gr
[Rozwiązano] Za ile mogę sprzedać komputer?
[Rozwiązano] Polskie znaki w zagranicznych fontach
[Rozwiązano] Puzzle Quest: Challenge of the Warlords
[Rozwiązano] Instalacja sterowników po reinstalacji systemu
[Rozwiązano] Wielki problem z kartą graficzną
[Rozwiązano] Nagrywanie płyt z audio w mp3
[Rozwiązano] Guitar Hero III
[Rozwiązano] Gears of War (błąd)
[Rozwiązano] Strona WWW
  • gry;wedkarskie;zimowe
  • vts programm
  • sprzedam nokia e65 1gb 100 sprawna bez
  • basen wesola wesolandia
  • bajm;etna
  • krajobraz gor wysokich
  • rekord wpisow 52800
  • obowie witt
  • banner oraz herb prosze o pomoc
  • Lista wątków z for internetowych : Index