Skocz do zawartości

Choosen

Użytkownicy
  • Postów

    196
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Choosen

  1. Fajna gierka, niezle wykonanie, kradzione zasoby :]

     

    Gry nie da sie zamknąć a przy 100% zaminowania nie da sie jej nawet ukonczyc... ewentualnie pole nie jest zaminowane w 100 procentach. Dodatkowo jesli moge cos zasugerowac zrobilbym wieksze kratki bo klikanie w te malenstwa jest uciazliwe :)

  2. Wykonujac kolejno kroki :

     

    1) zaznaczyc miejsce ( kratkę ) docelową jako nr 1 ( długosc drogi w grafie )

    2) oznaczyc wszystkie przylegle z nią i obdazone flagą "puste pole" pola flagą ostatni numer + 1 ( dlugosc drogi w grafie rosnie o jeden )

    3) krok drugi powtarzac dla wszystkich kratek z dlugoscią drogi n-1 az do momentu znalezienia kratki z ktorej obiekt ma sie poruszac

    4) przesuwac obiekt do przyleglego pola w najmniejszym numerze ( dlugosc drogi )

     

    jasne ? czy dac rysunek ? ;)

     

    droga0oy.jpg

     

    uzyskanych w ten sposob drog bedzie kilka ale kazda bedzie najkrutsza. Co wiecej skrypt mozna bardzo latwo przerobic dodajac do kolejnych pol zmienną powiedzmy... " wspolczynnik trudnosci przemierzenia pola" i w ten sposob uzyskamy skrypt ktory znajdzie najkrutsza droge np w trudnym terenie

  3. Moim zdaniem troche zle podchodzicie do tematu... Mapa w herosach to jedna wielka tablica 2-wymiarowa. A przeciez mając tablice nie trzeba juz tak skomplikowanych algorytmow motion planning jak A*. Wystarczą zwykle operacje na tablicach , jedna flaga ( pole wolne / zajete ) i strzalka w 8 kierunkach. No ale jesli sie upieracie... ;)

  4. ...W delphi masz takie ułatwienie, że masz wszystko objektowo, a w C++ nie (chyba że skorzystasz z C++ Buildera)...

     

    Male sprostowanie Marmot. To co masz na mysli mowiac o obiektach w Delphi to sa w istocie komponenty. Obiekty to zgoła inne pojecie. Koncepcja komponentow posiadajacych stany i wlasnosci zostala zaimplementowana w serii kompilatorow z dopiskiem "Builder" i ma to miejsce zarowno w językach C++ jak i object pascal ( odpowiednio C++ builder i Delphi builder ) Natomiast obiekty jako takie wystepują w obydwu jezykach.

     

     

    ...Chociaż jak w Delphi chcesz robić na czystym DirectX lub OpenGL to i tak trzeba korzystać z WinAPI, więc tu nie ma różnicy....

    Z tym niestety tez sie nie moge zgodzić. Tworzenie aplikacji OpenGL nie wymaga uzycia interfejsow WinApi ktore jednak znacznie ulatwiają sprawe i są czesto wykorzystywane :thumbsup:

  5. A ja myslalem ze zasady są siatkowkowe :lol: Tak czy inaczej jesli chodzi o fizyke pilki... no to kaplica :D Zajalbym sie tym w pierwszej chwili, te 3 odbicia po jednej stronie to tez wazna kwestia

    1) zwieksza realizm bo wiekszosc tego oczekuje

    2) zapobiega sytuacji w ktorej komputer bedzie sobie odbijal w nieskonczonosc

  6. Przepraszam ale nie moglem sie powstrzymac i dorzucilem jeszcze swoje 2 grosze.

     

    Ludzie, przeczytalem caly temat i musze przyznac ze poziom rozrywki jaka was fascynuje jest zanujący <_< Zagadka ? Zagadka to pytanie na ktore jest JEDNA prawidłowa odpowiedz. Ukryta wiadomosc he.. kazdej udzielonej na to pytanie odpowiedzi mozna zarzucic kłam więc nie widzę sensu w tworzeniu takich bzdur. Najsensowniejszym postem poruszającym kwestię zagadek byla opowiastka gnyska, jednak wyjasnianie równania 10/0.5=20 było juz mocno przesadzone ( naprawde myslales ze ktos nie zrozumial ? ;) )

  7. No coz by Ci tu powiedziec... zagralem i natrzaskalem 8k punktow :) Co do jakosci to chyba nie musze sie wypowiadac.. Grafika na odpieprz sie.. no bo jakas byc musi. Dzwiek midi i to jeszcze dobrze wszystkim znany motyw ze star wars. Grywalnosc co prawda jest... ale kiepska . Tak wiec... duzo jeszcze pracy zanim to bedzie gra. Get to work soldier ! :thumbsup:

  8. 1) No wiec tak... jesli chodzi o litere T to musisz sprawic zeby np program sie zatrzymal i poprosil o wcisniecie jakiegos klawisza ( komunikat albo menu z literkami )

     

    procedure AAA; // procedura musi byc wprowadzona zanim zostanie wywolana

    begin

    writeln('Wykonuję procedurę AAA');

    end;

     

    // kilka linijek pozniej :P gdzies w glownej funkcji programu

     

    writeln('wybierz opcje:');

    writeln('t - wywolanie procedury');

    writeln('x - zakonczenie programu');

     

    getchar(znak); // nie wiem czy nazwa funkcji jest prawidlowa ale to mozesz sprawdzic w spisie funkcji. Chodzi o funkcje pobierającą znak z klawiatury.

    if (znak='T') then AAA else exit(0);

     

    2) Mozliwosci jest kilka. Mozesz trzymac hasla w osobnym pliku lub np tabeli i w petli sprawdzac wprowadzone haslo z kazdym w pliku lub tabeli ( ew liscie lub inneh dowolnej strukturze danych )

     

    przykladu nie podam.. z prostej przyczyny. Zrobilbym wiecej bledow niz Ty wyciagnalbys z tego korzysci :-) Zbyt dlugo nie uzywalem pascala.

    Btw co Cie napadlo zeby sie bawic w pascala :P to juz przezytek

  9. Jesli jestes niedoswiadczonym programistą... nie powinienes uzywac tej opcji.. w ogole nie powinno sie uzywac tej opcji ze wzgledu na mozliwosc powstawania licznych, trudnych do wykrycia bledow logicznych. Gra sie odpali ale nie bedzie dzialac jak powinna bo przeoczysz moment w ktorym zmienna przyjela wartosc 0. Rozwiazaniem tego problemu jest inicjowanie zmiennych.

  10. Zacznijmy od poczatku... poruszania obiektami nie robi sie w step ! No chyba ze poruszają sie niezaleznie od naszej woli w sposób plynny...

     

    Zeby zabezpieczyc obiekt przed przesunieciem za obszar monitora piszesz w działach odpowiedzialnych za wciskanie strzalek odpowiednie formulki

     

    left arrow:

     

    if ( bohater.x>=5) {bohater.x-=5;} else Pbohater.x=0;};

    // czyli przesun bohatera o 5 pixeli w lewo JESLI znajduje się w odleglosci conajmniej 5 pixeli od lewej krawedzi ekranu. W przeciwnym wypadku dosun go do lewej krawedzi ekranu.

     

    I analogicznie...

     

    right arrow:

     

    if (bohater.x<=(room_width-5)) {bohater.x+=5;} else {bohater.x=room_width;};

     

    up arrow:

     

    if (bohater.y>=5) {bohater.y-=5;} else {bohater.y=0;};

     

    down arrow:

     

    (if bohater.y<=(room_height-5)) {bohater.y+=5;} else {bohater.y=room_height};

     

    Na koniec dodam jeszcze ze te wartosci beda poprawne dla punku czyli obiektu o rozmiarze 0 pixeli. W kodzie nalezy uwzglednic jeszcze rozmiar samego bohatera...

  11. Panoooowie panooowie ! Poziom prac zawiódl nawet mnie :crying: Nie przyłożyliście się w ogole. Nie obejmuje to oczywiście zwycięzcy ( i tu chcialbym pogratulowac :thumbsup: ). Ranma_man... o tobie chcialbym powiedzieć więcej. Menu faktycznie zrobiło na mnie wielkie wrażenie... ale tylko za pierwszym razem bo pozniej gra juz sie w ogole nie odpalała ( uzalezniles gre od dzwieku czy jak ? :-) ) Pomijając ten drobny fakt... to menu bylo naprade dobre i dopracowane. W przeciwienstwie do samej gry :] Nie wiem na czym Ty to tworzyles... ale u mnie gra chodziła tak przeraźliwie szybko ze nie zdązyłem zobaczyc z czym walcze :-)

     

    Kiedy następny konkurs ? Moze zrobimy z tego regularne zawody ? :-)

  12. Powielony posta w celu pokazania postepu ( nie moja wina ze się nie chcecie wypowiadac ;) )

     

    Nowa wersja i nowe zmiany. Plik podmieniony i powoli zblizam sie do konca pisania ponga. Nowe zmiany :

     

    1) m - wlacza i wylacza muzyke

    2) dodana punktacja

    3) pierwsza wersja menu ( proszę narazie wciskac enter aby zacząc gre - wersja testowa )

     

    No i to narazie tyle... coz. Nie mam zbyt wiele wolnego czasu.

    Zapraszam do sciągania

  13. most23 :

     

    Kazda zmienna ma swoj tz zasięg czyli "obszar" w ktorym bedzie znana. Jesli tworzysz dany obiekt i w dziale create dajesz zmienną ruch=5; to tyczy się to tylko tego obiektu. Tobie chodzi zapewne o zmienne globalne ( czyli takie zmienne do ktorych mozna się odwolac z kazdego obiektu ( kazdego miejsca mowiąc potocznie )) Zmienne takie tworzysz z dopiskiem global np:

     

    global.ruch=5;

    Taką zmienną mozesz spokojnie dac jako argument skryptu i napewno zadziala ( chyba ze wartosc zmiennej nie jest znana w momencie wykonywania skryptu )

     

    Innym sposobem jest "zwrocenie się do obiektu , ktory jest w posiadaniu zmiennej " o podanie jej wartosci, a robi się to tak jak podal Sly bez uprzedniego wyjasnienia o co w tym chodzi ;) czyli :

     

    wykonaj_skrypt(nazwa_obiektu_w_ktorym_stworzyles_zmienną.nazwa_zmiennej);

  14. Informuję wszem i wobec ze wyszla kolejna wersja ponga3D. Plik zostal podmieniony i znajduje się pod tym samym adresem. Z nowych rzeczy :

     

    - widok zza paletki

    - dzwięk

    - dokladniejsza detekcja kolizji

    - mozliwosc wplynięcia na tor lotu pilki

    - poprawione AI przeciwnika

     

    Zapraszam do sciągania...

    Chosen_pong_alpha

×
×
  • Dodaj nową pozycję...