Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Siema

Mało kto wrzuca jakieś programy, więc może ja się podzielę. Postanowiłem napisać coś na kształt Logo Komeniusza. Kierujesz żółwikiem i on robi co mu tam każesz :) Kod który ma wykonać żółw zapisujesz do test.logo :) Wyłączamy program ESC (eskejp). Pisząc używałem Allegro 4.2 i działa to szybciej, niż LOGO Komeniusz (przynajmniej mi się tak wydaje) B)

 

Link do pobrania:

http://speedy.sh/2zA7a/Logo-hfaua.7z

Skan:

https://www.virustotal.com/file/6d9e88fef6fc2f4946a92c01f1d354cb86bd5e1565e55ecafacac51af396b5e6/analysis/1340568005/

 

Lista komend dla żółwika:

 

0) create X Y A - tworzy nowego żółwia na pozycjach X, Y z obrotem A

1) delete ID - kasuje żółwika o podanym id (na razie tylko chowa)

2) move X - porusza żółwia o X pixeli

3) rotate A - obraca żółwia o podany kąt A

4) hide - chowa żółwia

5) show - pokazuje żółwia

6) pickup - podnosi żółwia

7) leave - opuszcza żółwia

8) size S - zmienia rozmiar żółwia (nie działa jeszcze)

9) wait T - czeka T milisekund

10) clear - czyści ekran

11) repeat C - pętla powtarzana C razy

12) endloop - koniec tejże pętli

13) exit - koniec programu

14) choose ID - wybiera żółwia o podanym ID

15) setcol C - ustawia kolor aktualnego żółwia

16) setbgcol C - ustawia kolor tła (jeszcze nie działa)

17) color C - koloruje zamknięty obszar na kolor C

18) proc N A1 A2 A3 ... - pozwala nam stworzyć procedurę N z arguemntami A1 A2 A3 itd...

 

 

 

Procedury

 

A więc dzisiaj rano z nudów zacząłem dopisywać do parsera procedury. Zajęło mi to godzinkę z hakiem. Jeśli chcemy ich użyć to musimy je umieścić na samym początku pliku *.logo.

 

Przykładowa procedura:

proc kwadrat bok
begin
repeat 4
move bok
rotate 90
endloop
end

 

Czyli po kolei:

1) słowo kluczowe proc

2) nazwa procedury (np. kwadrat) - musi być oczywiście różna od nazw pozostałych funkcji

3) argumenty (np. bok) - argumentów o ile dobrze pamiętam może być 147, więc raczej nikomu nie zabraknie :)

4) słowo kluczowe begin - służy tylko i wyłącznie do tego, żeby parser wiedział, gdzie kończą się argumenty

5) ciało procedury (u nas pętla rysująca kwadrat o bokach równych wartości argumentu bok)

6) słowo kluczowe end - zamyka ciało funkcji

 

Liczba możliwych procedur to 2147483547 (o 100 mniej niż max wartość int'a). Narazie nie ma możliwości używania procedur w procedurach, będzie to dodane razem z rekurencją.

 

Liczba możliwych argumentów na każdą procedurę to jak już pisałem 147. Jeżli to mało to mogę to oczywiście zwiększyć, ale nikt chyba nie będzie pisał aż tak dziwnych tworów :P

 

 

 

Narazie program nie sprawdza poprawności kodu, więc jeśli będą jakieś błędy, to po prostu się zwiesi...

Teoretycznie można pisać kod w jednej linijce oddzielony tylko białymi znakami, ale żeby się nie pogubić to polecam pisanie linijka pod linijką z wcięciami.

 

W planach mam jeszcze dopisać:

- rekurencję

- instrukcje warunkowe

- parser wyrażeń matematycznych

- edytor plików *.logo z podświetlaniem składni, debuggerem itd.

- sprawdzanie błędów podczas wykonywania kodu

- wybór pliku *.logo który program ma wykonać

 

Piszcie jak się podoba/nie podoba, co nie działa, albo co powoduje jakieś błędy :)

 

 

Pozdrawiam, hfaua B)

Weteran
Opublikowano

Zajebiste :]

Tylko coś ciężko to się wyłącza. Chyba muszę skorzystać z menedżera zadań.

 

btw. fajnie, że w końcu ktoś zaczął coś robić.

Opublikowano

Eskejpem :P Sorry, już dopisuję :)

 

Takie chwilowe zaprzestanie pisania gier i przejście na jakiś inny temat ;]

 

#EDIT

Dodałem nowy download z procedurami i poprawioną trochę resztą :)

Opublikowano

Hahaha :) Kurwa pamiętam logo z 1 klasy gim ;p Napisało sie "funkcje" kwadratu jeżeli tak mozna to nazwać i oo wielki informatyk ;p ....

Tylko mam błąd ze nie odnaleziono biblioteko allegro ;p (chyba tej biblioteki bo pisze alld42.dll) :) Like :)

hcq0.png


  • 2 tygodnie później...
Opublikowano

Niee, jakoś mi się odechciało ;] Jakbym zrobił ify to bym musiał dorobić do tego jakiś parser matematyczny i logiczny, a mi się nie chce :)

Opublikowano

Niestety, na moim systemie ten program nie działa :(.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Win XP.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Dobra, już nie mam błędów. Po prostu we wcześniejszej paczce nie dołączyłeś kilku bibliotek ;).


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...