Krzysztof Wesołowski » code http://kwesoly.net Programowanie, elektronika, automatyka - doświadczenia i projekty Wed, 07 Sep 2011 14:03:29 +0000 pl-PL hourly 1 Multiplayer Arkanoid – źródła http://kwesoly.net/programowanie/ada/multiplayer-arkanoid-zrodla/ http://kwesoly.net/programowanie/ada/multiplayer-arkanoid-zrodla/#comments Thu, 12 Feb 2009 01:50:30 +0000 http://kwesoly.net/?p=307 W związku z wpisem i zakończeniem zbierania projektów od naszego roku prowadzący zezwolił na publikację źródeł programu zaliczeniowego. Są to źródła opublikowanego wcześniej programu, wraz z naniesionymi minimalnymi poprawkami i ulepszeniami.  Mam nadzieję, że przysłużą się jako przykład, pokazujący kilka przydatnych w pisaniu projektów z języka Ada możliwości:

  • Użycia przystosowanych do współbieżności struktur danych wysokiego poziomu (obiekty chronione).
  • Dziennik działania programu w oparciu o plik, wykorzystujący obiekt chroniony.
  • Zastosowanie grafiki trójwymiarowej za pomocą GLUT i Open GL, zarówno do obsługi wyświetlania jak i wejścia.
  • Wielowątkowa struktura programu o stosunkowo jasnym podziale odpowiedzialności pomiędzy zadania.

Poza powyższymi program potrafi symulować bardzo prostego gracza komputerowego i wykorzystuje oświetlenie w celu urozmaicenia grafiki pozbawionej tekstur. Pełniejszy opis jego działania można znaleźć w Multiplayer Arkanoid - sprawozdanie

Program korzysta z oświetlenia, dzięki czemu wygląda w miarę ciekawie bez zastosowania tekstur:

Screen z gry - numer 1

Screen z gry - numer 1

Screen z gry - numer 2

Screen z gry - numer 2

Poniżej link do dwóch wersji programu:

]]>
http://kwesoly.net/programowanie/ada/multiplayer-arkanoid-zrodla/feed/ 0
GNATbench – używanie Code Assist w Eclipse. http://kwesoly.net/programowanie/ada/gnatbench-code-assist-w-eclipse/ http://kwesoly.net/programowanie/ada/gnatbench-code-assist-w-eclipse/#comments Sat, 22 Nov 2008 01:29:15 +0000 http://kwesoly.net/?p=157 W kolejnej części postaram się przybliżyć kilka ciekawych możliwości ułatwiających programowanie, dzięki którym pisanie kodu stanie się prostsze, szybsze i bardziej niezawodne. Podstawowym zadaniem Code Assist jest zmniejszanie nakładu pracy, poprzez pisanie szybciej,  z mniejsza szansą zrobienia literówko, nie wymagające pamiętanie perfekcyjnie wszystkich nazw bibliotek/funkcji. Dzięki tej funkcji łatwo uzupełnić zarówno dyrektywy with/use, nazwy już istniejących obiektów, funkcji czy zwykłych zmiennych. Ponizej kilka przykładów.

  • Nazwy pakietów w dyrektywach with/use.

Możemy w nagłówku wpisać tylko with Ada.Te oraz wywołać niniejszą funkcję kombinacją klawiszy Ctrl+Spacja aby Eclipse wyświetlił nam listę dostępnych zakończeń takiej dyrektywy. Jako że tylko jeden pakiet zawarty w Ada.* zaczyna się na "Te" możemy wybrać pierwszą opcję z wyświetlonej listy naciskając Enter.

Code Assist Screen

  • Nazwy Pakietów/Obiektów/Procedur/Funkcji

Code Assist wspiera nas także w trakcie pisania treści programu, analogicznie po naciśnięciu Ctrl+Spacja uzupełniając pozostały fragment bieżacej nazwy. Jest to szczególnie przydatne gdy z jakichś przyczyn rezygnujemy z dyrektyw use. Poniżej kilka przykładów:

Po wpisaniu pierwszych dwóch liter nazwy pakietu, zarówno w dyrektywie with jak i w treści programu:

Code Assist Screen

Możemy nacisnąć Enter, postawić kropkę i idąc w ten sam sposób dotrzeć do:

Code Assist Screen

Równie prosto jak dla procedur możemy uzyskać informacje o funkcjach:

Code Assist Screen

  • Argumenty funkcji/procedur

Czasem, zwłaszcza przy korzystaniu z rzadziej używanych funkcji nie pamiętamy argumentów z którymi ja wywołać, nie zawsze też pamiętamy które argumenty funkcja zmienia a które modyfikuje. Zamiast jednak szukać opisu funkcji w dokumentacji, łatwiej wykorzystać do naszych poprzez Code Assist. Wystarczy wywołać go po wpisaniu lewego nawiasu, aby otrzymać listę możliwych zestawów parametrów wraz z sposobem ich przekazywania i opisem funkcji. Dla przykładu zobaczmy ile wersji ma zwykła funkcja Put:

Code Assist Screen

Po wybraniu właściwej funkcji poprzez zatwierdzenie wyboru Enterem lub też kliknięcie myszką, możemy wpisywać argumenty, które przekazywane są wtedy w bardzo czytelny sposób.

]]>
http://kwesoly.net/programowanie/ada/gnatbench-code-assist-w-eclipse/feed/ 0