Szymon Ender - Strona projektów

Testowe programy bazodanowe

Zestaw programów bazodanowych, pisanych w celu przećwiczenia pisania programów komercyjnych. Zakres stworzonych programów obejmuje programy konsolowe klient-serwer oraz okienkowe w WinAPI i w wieloplatformowej bibliotece wxWidgets. Użyte silniki baz danych: MySQL oraz SQLite. Projekt rozwijany wspólnie z Szymonem Cichym dzięki systemowi kontroli wersji Subversion. Kliknij na obrazek, aby przejść do galerii projektu, w której przedstawiam jedynie moje własne programy.

Wersje binarne dla systemów Windows oraz GNU/Linux (jeśli dotyczy) dostępne są tutaj.

Powrót na górę

DB test programs
Kliknij na obrazek, aby przejść do galerii.

Baza danych biura nieruchomości

Program, który pozwala na wprowadzanie do bazy danych oczekiwań klientów, dotyczących kupna przez nich nieruchomości, a następnie, w wygodnej wyszukiwarce, pozwala na wyszukiwanie tych klientów poprzez wprowadzenie informacji o konkretnej ofercie sprzedaży.

Typowe wyszukiwanie może być przeprowadzone poprzez wyszukiwanie wpisów, które cechują się wybranym typem, miejscem, parametrami, oraz które posiadają konkretną cechę, lub nie posiadają cech, które nie odpowiadają danemu klientowi.

Powrót na górę


Estate agency
Kliknij na obrazek, aby go powiększyć.

MDDClone-SDL

Port SDL sagi gier Mercenary (jednej z pierwszych gier 3D). Port SDL oznacza, że ten sam kod może być kompilowany na wszystkich platformach wspierających SDL (dotychczas powstały porty na Windows, Mac OS X, GNU/Linux i FreeBSD). Projekt bazowany jest na kodzie MDDClone, lecz zawiera moje własne udoskonalenia, z których najważniejszym jest wersja OpenGL gry. Z powodów historycznych oraz kompatybilnościowych, równolegle tworzona jest wersja renderująca grafikę software'owo, za pomocą kompilacji warunkowej.

Strona domowa projektu wraz z galerią znajduje się tutaj
Ze względu na ograniczenia prawne kod nie jest dostępny.

Powrót na górę


MDDClone-SDL
Kliknij na obrazek, aby go powiększyć.

Killers Behind You

Platformowa gra 2D napisana w języku C++, z wykorzystaniem bibliotek SDL i OpenGL. Gra wyróżnia się kreskówkową grafiką, dynamiczną i płynną kamerą oraz realistyczną (w granicach rozsądku) fizyką. Wspólnie z grafikiem, Pawłem Zięcikiem, planujemy połączyć najlepsze pomysły, znane nam z innych gier platformowych oraz nasze własne w jedną grę. Gra działa na systemach Windows i GNU/Linux. W przyszłości powstanie również port dla Mac OS X.

Demo gry dla systemu Windows dostępne jest tutaj, a dla systemu GNU/Linux tutaj. Wersja GNU/Linux wymaga wcześniejszego zainstalowania następujących bibliotek: freeglut, SDL, SDL_image, SDL_mixer oraz zziplib.

Powrót na górę


Killers Behind You
Kliknij na obrazek, aby go powiększyć.

Killers Behind You level editor

Edytor poziomów dla Killers Behind You, napisany w języku C++, z wykorzystaniem biblioteki wxWidgets. Edytor ten importuje i eskportuje dane poziomów w formacie XML, które są następnie używane w samej grze Killers Behind You.

Powrót na górę


Killers Behind You
Kliknij na obrazek, aby go powiększyć.

Launch MFD

Wyświetlacz wielofunkcyjny Orbiter'a, który oblicza azymut startu i lotu twojego statku kosmicznego, wymagany aby osiągnąć orbitę o podanych paramertach, również w zależności od parametrów fizycznych twojego źródłowego ciała niebieskiego. Dodatkowe funkcje Launch MFD:

  • Algorytm Powered Explicit Guidance NASA - określa aktualnie wymagane nachylenie statku any osiągnąć orbitę o wymaganych wysokościach
  • Autopilot rozmyty - płynnie kieruje statek na wymaganą orientację (w obydwu osiach), używając mojego portu Fuzzy Engine for Java - libFuzzyEngine++
  • Mój algorytm wejścia bezpośredniego - również używa libFuzzyEngine++. Opisany poniżej.

Launch MFD znajduje się na liście dwudziestu najczęściej pobieranych dodatków do Orbitera wszechczasów. Jako projekt będący Wolnym Oprogramowaniem, swój wkład w Launch MFD wniosło kilka osób, i trzech głównych autorów, w tym ja. Program jest rozwijany przy pomocy systemu kontroli wersji Subversion.

Kod w języku C++ jest dostępny tutaj, a binaria dla Windows tutaj. Do uruchomienia wymagany jest Orbiter.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.

Orbitrader MFD

Multiplayerowy moduł handlowy Orbiter'a, w trakcie rozwoju. Pozwala na handel towarem pomiędzy bazami i stacjami kosmicznymi w Układzie Słonecznym, za wirtualne pieniądze. Wszystkie transakcje i zdarzenia są przechowywane na serwerze Orbitrader'a, rozwijanym przez Pawła "She'da'Lier" Stiasnego, gdzie transakcje są przeliczane ponownie, oraz skąd pobierane jest ostatnie zapisane zdarzenie, tak że modół może odtworzyć stan symulacji po ponownym uruchomieniu.

Projekt używa bibliotek libxml2 do grupowania danych, libcurl do transferu tych danych, oraz pthread aby zapewnić nieblokujący symulacji charakter przesyłu danych.

Kod w C++ jest dostępny tutaj. Do uruchomienia wymagany jest Orbiter.

Powrót na górę


OrbitraderMFD

Energy MFD mk2

Energy MFD mk2 jest narzędziem, które próbkuje twoją energię kinetyczną i potencjalną (KE i PE) oraz ich sumę - energię mechaniczną (ME). Zapisane dane są wyświetlane na wykresach, dając ci dobry podgląd stanu twoich energii. MFD ten jest głównie narzędziem edukacyjnym, które pozwala na przeprowadzenie ciekawych eksperymentów fizycznych, opisanych w dokumentacji.

Kod w C++ i binaria dla Windows dostępne są tutaj. Do uruchomienia wymagany jest Orbiter.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.

Sceneria orbitalna

Modul ten tworzy asteroidy na orbicie. Asteroidy te posiadaja losowo wygenerowane prędkości oraz rotacje. Kliknij tutaj, aby zobaczyć video-klip dodatku.

Kod w C++ i binaria dla Windows dostępne są tutaj. Do uruchomienia wymagany jest Orbiter.

Powrót na górę


Roids
Kliknij na obrazek, aby go powiększyć.

Lobby Multiplayerowe DEI

Program, który jest efektem dużych modyfikacji klienta/serwera chat SDL autorstwa Sam'a Lantinga. Wraz z podstawową fukcją czatu, Lobby posiada teraz bardziej zaawansowaną funkcję: pozwala na transfer stanu gry strategii turowej Divide Et Impera poprzez Internet.

Program używa biblioteki Simple Directmedia Layer aby wywoływać różne funkcje niskiego poziomu.

Kod w C/C++ oraz binaria dla Windows są dostępne tutaj.

Powrót na górę


DEI_Lobby
Kliknij na obrazek, aby go powiększyć.

Kalkulator wejścia bezpośredniego

Aplikacja ta służy jako wizualizacja mojego algorytmu bezpośredniego wejścia na orbitę, zastosowanego w Launch MFD. Trajektoria statku będąca wynikiem obliczeń jest wyświetlana jako piksele na części graficznej programu, natomiast parametry lotu w wymiarze czasu wyświetlane są w prawej części programu. Algorytm używa logiki rozmytej (libFuzzyEngine++) aby przyspieszyć obliczenia numeryczne i, w tej postaci, jest tematem mojej pracy magisterskiej. Dokładny opis programu znajduje się w dokumentacji Launch MFD.

Kod w C++ i binaria dla Windows dostępne są tutaj.

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.

libFuzzyEngine++

Mój port C++ silnika logiki rozmytej Fuzzy Engine for Java pana prof. Edward'a Sazonov'a. Portowanie silnika z Javy na C++ wymagało odpowiednich przemyśleń nt. sposobów ominięcia zależności od garbage collector'a, typowej w programowaniu w Javie i C#. Sama biblioteka używa przyjaznego dla programisty interfejsu, w którym definiujemy funkcje przynależności i reguły lingwistyczne. Używam tego portu w Launch MFD w algorytmie wejścia bezpośredniego i w autopilocie rozmytym.

Kod w języku C++ i skrypty / projekty do kompilacji znajdują się tutaj.
Oryginalny Fuzzy Engine for Java znajduje się tutaj i aktualnie utrzymywany jest na Sourceforge

Powrót na górę


Launch MFD
Kliknij na obrazek, aby go powiększyć.
Obrazki koncepcyjne © prof. Edvard Sazonov.

Port Windowsowy Brain Party

Pomogłem Paul'owi Hudson'owi z magazynu Linux Format w stworzeniu portu Windowsowego jego gry logicznej - Brain Party. Przeniesienie gry wymagało dokonania nie tak oczywistych zmian w kodzie, oraz oczywiście przygotowania samego pliku wykonywalnego za pomocą MinGW i MSYS.

Kod w języku C++, jak również wersje binarne dla Windows dostępne są tutaj.

Powrót na górę


Brain Party
Kliknij na obrazek, aby go powiększyć.

Kółko i krzyżyk w Javie

Gra w Kółko i krzyżyk, używająca AWT z w pełni skalowalną grafiką, stwrzona jako projekt akademicki.

Plik wykonywalny Javy dostępny jest tutaj a kod źródłowy tutaj.

Powrót na górę


tictactoe
Kliknij na obrazek, aby go powiększyć.

Kalkulator azymutu

Poprzednik Launch MFD. Używa tego samego algorytmu podstawowego do obliczania azymutu, ale w praktyce program ten ma niską przydatność do Orbitera. Z drugiej strony, jako program samodzielny, ma wartości edukacyjne i demonstracyjne.

Program został napisany w C i WinAPI.

Kod w C oraz binaria dla Windows są dostępne tutaj.

Powrót na górę


Azimuth_calculator
Kliknij na obrazek, aby go powiększyć.

Narzędzie do tłumaczenia bitmap MDDClone

Narzędzie to pozwala na tłumaczenie bitmap używanych w MDDClone za pośrednictwem czytelnego dla człowieka interfejsu. Dokładniej - tłumaczy tekst, który wprowadzisz klawiaturą, do pliku bitmapy, który jest z kolei używany przez MDDClone.

Wymyślony algorytm potrafi automatycznie centrować tekst i dobierać odpowiednią czcionkę (im dłuższy tekst, tym węższa czcionka zostanie wybrana). Również przyjmowane są różne parametry dla danej linii w celu specyficznego jej sformatowania.

Kod C/C++ i binaria dla Windows są dostępne tutaj.

Proszę mieć na uwadze, że jest to mój pierwszy program, udostępniony publicznie, dlatego też jego kod jest całkiem amatorski.

Powrót na górę


Mercenary_BMP
Kliknij na obrazek, aby go powiększyć.

Skrypt wybielający obrazy

To tylko demonstracja części z moich zdolności pisania skryptów w Matlabie. Używając zestawu narzędzi przetwarzania obrazów z Matlab'a, udało mi się usunąć czerń z obrazów, w przeciwieństwie do stosowania negatywu obrazu, który z kolei wypacza wszystkie pozostałe, czasem ważne, kolory.

Praktycznym zastosowaniem tego skryptu są przewodniki do Orbitera w wersji do druku, z oczywistego powodu: wybielone obrazy oszczędzają mnóstwo tuszu lub tonera.

Skrypt jest dostępny tutaj. Do uruchomienia wymagany jest Matlab.

Powrót na górę


Image_whitening
Kliknij na obrazek, aby go powiększyć.

AbsoluteKillrot

Poprawka oryginalnego błędu Orbitera, którego rezultatem jest pewna niewielka, stała rotacja statków, zauważalna i bardzo denerwująca podczas podróży międzyplanetarnych.

Kod C++ i binaria dla Windows dostępne tutaj. Do uruchomienia wymagany jest Orbiter.

Powrót na górę


AbsoluteKillrot
Kliknij na obrazek, aby go powiększyć.
© 2008 Szymon Ender. Obraz logo pochodzi ze strony Hubble'a.