bo mnie zaraz coś strzeli x|
już myślałem, że będzie z górki, a tu wyłania się komodorowe LOGO ze swoim dialektem. I okazuje się, że program nie działa, bo komodorowe LOGO przecież musi mieć swoje własne zasady i połowę instrukcji po swojemu. I tak np. zamiast EQUALP, MEMBERP jest EQUAL?, MEMBER?, zamiast [STOP] jest STOP, zamiast SETPOS jest... sam nie wiem co - prawdopodobnie SETXY, tyle że sama podmiana SETPOS na SETXY nie wystarcza, bo Wtedy komodorowe logo się pluje, że ma za mało argumentów:
SETXY FIRST :LISTA
ostatecznie jakoś cały kod udało mi się doprowadzić do stanu, w którym nie krzyczy, że działał nie będzie, po zmianie na:
SETXY FIRST FIRST :LISTA LAST FIRST :LISTA
...czy tam odwrotnie. Lol. %| (Bo :LISTA jest listą par współrzędnych). A przynajmniej nie krzyczy podczas testów, po wpisaniu:
KASUJ "KWADRAT1
NOTUJ "KWADRAT1
REPEAT 4 [FD 40 RT 90 NOTUJ "KWADRAT1]
RYSUJ PD :KWADRAT1
Za to dla równowagi wykłada się na ostatniej z tych komend, komunikując, że PD DIDN'T OUTPUT.
konkretnie próbuję ujarzmić kod z artykułu TRANSFORMACJE z Bajtka 3/87, który w normalnej postaci wygląda tak:
TO PRZEJDZ :Lista
IF EMPTYP :Lista [STOP]
SETPOS FIRST :Lista
PRZEJDZ BF :Lista
END
TO KASUJ :Zmienna
MAKE :Zmienna []
END
TO NOTUJ :Zmienna
MAKE :Zmienna LPUT LIST XCOR YCOR THING :Zmienna
END
TO PRZESUN :Zmienna :Wektor
MAKE :Zmienna PRZES THING :Zmienna FIRST :Wektor LAST :Wektor
END
TO PRZES :Lista :DX :DY
IF EMPTYP :Lista [OP []]
MAKE "Punkt1 FIRST :Lista
MAKE "NPunkt LIST :DX + FIRST :Punkt1 :DY + LAST :Punkt1
OP SE BL LIST :NPunkt [] PRZES BF :Lista :DX :DY
END
TO TRANSF :Lista1 :Lista2 :IleKrokow
IF OR EMPTYP :Lista1 EMPTYP :Lista2 [OP []]
MAKE "Punkt1 FIRST :Lista1
MAKE "Punkt2 FIRST :Lista2
MAKE "X1 FIRST :Punkt1
MAKE "Y1 LAST :Punkt1
MAKE "X2 FIRST :Punkt2
MAKE "Y2 LAST :Punkt2
MAKE "NPunkt LIST SUM :X1 ( :X2 - :X1 ) / :IleKrokow SUM :Y1 ( :Y2 - :Y1 ) / :IleKrokow
OP SE BL LIST :NPunkt [] TRANSF BF :Lista1 BF :Lista2 :IleKrokow
END
TO RYSUJ :StanPiora :Lista
IF EMPTYP :Lista [STOP]
PENUP
SETPOS FIRST :Lista
RUN :StanPiora
PRZEJDZ :Lista
END
TO PRZEOBRAZ :Lista1 :Lista2 :Usuwanie :IleKrokow
MAKE "Opcja MEMBERP :Usuwanie [T t]
RYSUJ [PENDOWN] :Lista1
MAKE "FigPoprz :Lista1
MAKE "Krok 0
REPEAT :IleKrokow [MAKE "Krok :Krok + 1 MAKE "FigNast TRANSF :Lista1 :Lista2 :IleKrokow / :Krok IF :Opcja [RYSUJ [PE] :FigPoprz] [] RYSUJ [PENDOWN] :FigNast MAKE "FigPoprz :FigNast]
END
A jeszcze bardziej konkretnie w Terrapin Logo, które jest z jednej strony najwygodniejszym z dotychczas poznanych wariantów, a z drugiej - no właśnie...
Może zna ktoś jakieś normalne Logo na Komodore? "Commodore Logo" po załadowaniu wyświetla tylko "ok" i wraca do BASIC-a.
Ostatnia aktualizacja: 26.09.2023 10:24:15 przez snajper