Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Algorytm A*

Ostatnio zmodyfikowano 2016-06-20 17:52
Autor Wiadomość
markiet
Temat założony przez niniejszego użytkownika
Algorytm A*
» 2016-06-15 19:05:41
Witam
Musze napisać Program A*. Czy może ktoś ma jakieś rady dla mnie?
P-149151
darko202
» 2016-06-16 08:17:56
szukając info. co to jest ten algorytm A*
znalazłem na
https://pl.wikipedia.org/wiki​/Algorytm_A*
Algorytm A* w pseudokodzie

na innej stronie
http://forum.pcformat.pl​/C-Problem-z-algorytmem-A-t
algorytm A* powinien korzystać z kolejki priorytetowej (żeby wybrać najlepszy w danej w chwili punkt)

idąc dalej na 
https://github.com/graphhopper​/graphhopper/blob/master/core​/src/main/java/com/graphhopper​/routing/AStar.java
implementacja algorytmu A* w java 

a java to podobno ulepszone C/C++


zajrzałem tez na
http://www.gamedev.pl/forum​/a--obiektowe-przechowywanie-algorytmu
ciekawe dywagacje

chyba odnoszą się do artykułu -
http://www.bing.com/search​?q=Patrick+Lester+OpenList++bin​ary+heap​&qs=n&form=QBRE​&pq=patrick+lester+&sc=0-15​&sp=-1&sk=​&cvid=38E5AC58AE80431886BB6349CEB1F828
ale może nie :-) - wybrałem pierwszą z poszukiwania w google "Patrick Lester OpenList  binary heap"

to przez linki zaprowadziło mnie na
http://www.redblobgames.com​/pathfinding/a-star​/implementation.html

a tu wśród różnych jest "3. C# Implementation"
a C# to podobno ulepszone C/C++ i basic

czyli jest sporo materiału na temat tego algorytmu


Przeczytałbym dokładniej, gdybym potrzebował, ale już się obudziłem :-)
i wracam do pracy. 

Napisz dokładniej czego nie rozumiesz, łatwiej się będzie odnieść tzn. dać ci "dobre rady".

bo rada "bierz się ... do roboty " wydaje mi się strasznie powiedzmy "nieelegancka" w ten piękny słoneczny poranek :-) 

Powodzenia ! 
P-149168
markiet
Temat założony przez niniejszego użytkownika
» 2016-06-20 17:52:58
Teraz mam już wczytywanie mapy i musze teraz po linijce     plik.close(); zainicjowac ListeOtwarta i zamnięta oraz dodac węzel poczatkowy tak jak w tym pseudokocie z linku: http://iair.mchtr.pw.edu.pl/~bputz/aisd_cpp/lekcja7/segment4/main.htm




#include <iostream>
#include <fstream>  //wlacza obsluge plikow
using namespace std;



class Punkt
{
public:
int PozycjaX;
int PozycjaY;
int wartosc; // okresla, czy mozna przejsc po polu, 0 - tak, 5 - nie
double G; //długo?ć ?cieżki
double H;
double F;
// ja bym jeszcze zrobli:
int RodzicX;
int RodzicY;
};


int main(int argc, char** argv) {

string nazwap = "grid.txt";


    int wym2=20; // kolumny
    int wym1=20; //wiersze

    int rows = wym2+1;

    Punkt **TablicaP;

   
    TablicaP = new Punkt*[rows];

 
    while(rows--) TablicaP[rows] = new Punkt[wym1+1];

  
    std::ifstream plik(nazwap.c_str());
    for ( int i=1;i<wym2+1;i++)
    {
        for ( int j=1;j<wym1+1;j++)
        {
        
            plik >> TablicaP[j].wartosc;
         
            TablicaP[j].PozycjaY = i;
            TablicaP[j].PozycjaX = j;
        }
    }
    plik.close();

  
  vektor <Punkt*>ListaOtwarta;
  vektor <Punkt*>ListaZamknieta;
 

//WYSWIETLANIE MAPY

    for(int i=1;i<wym2+1;i++)
    {
        for(int j=1;j<wym1+1;j++)
        {
            cout<<TablicaP[j].wartosc<<" ";
        }cout<<"\n\n";
    }



    getchar();


return 0;
}
P-149323
« 1 »
  Strona 1 z 1