Giter Site home page Giter Site logo

pathfindinglab's Introduction

pathfindinglab's People

Contributors

nuis4nce avatar

Watchers

 avatar

pathfindinglab's Issues

Vertaisarviointi

Projekti ladattu keskiviikkona 17.2.2021 klo 8:24

Olen itsekin tekemässä reitinhaku-projektia, joten aihe oli tuttu, vaikkakin algoritmit osittain eri. Itse algoritmien kehitys ja testaus on vielä hyvin kesken, mutta käyttöliittymä oli jo pitkällä. Käyttöliittymä näytti todella hienolta ja sitä oli selkeä käyttää.

Algoritmeista toteutettuna oli vasta Dijksta ja se ei löytänyt reittiä. Yritin lukea koodia ja se näytti minusta päällisin puolin oikealta, yksi parannus voisi olla lisätä aloitus nodelle myös distance arvo, koska uusi etäisyys lasketaan currentNode.getDistance() + 1. En ole varma, mikä on distance-muuttujan oletusarvo, jos sitä ei ole konstruktorissa alustettu. DPathFind on todella pitkä metodi, joten sen pilkkomista pienempiin toiminnallisuuksiin, voisi olla kannattavaa ja selkeyttää sitä, mitä mikäkin osa koodista tekee.

Vinkki: Minulla meni aika kauan siinä, että pohdin miten saan MovingAILabin kartan muokattua niin, että sen sai annettua syötteenä reitinetsintäalgoritmille. Joten siihen kannattaa varata aikaa! :)

Vertaisarvionti #2

Projekti ladattu tiistaina 23.2.2021 klo 14:45

Käyttöliittymä projektissa on hieno ja koodi on helposti luettavaa. Teen itsekin reitinhakualgoritmien vertailua, joten projektin rakenne ja toteutus oli etukäteen suurinpiirtein tuttua. Törmäsin kuitenkin muutamiin ongelmiin sovellusta käyttäessä.

Ensimmäisellä suorituskerralla Dijkstra löysi selvästi epäoptimaalisen reitin, mutta toinen suorituskerta osasi reitin jo paremmin.

Esimerkki1
Tämä johtunee siitä, että Dijkstra toimii tällä hetkellä ahneesti ja suosii "sivuttaisliikettä", jolloin matka maaliin vähenee enemmän verrattuna normaaliin ylös/alas/vasen/oikea liikkeeseen.

Clear-nappula nollaa kartat ja koordinaatit, mutta pitää muistissa vanhat reitit.
Esimerkki2

Osalla monimutkaisemmista kartoista löydetty reitti heitti siksakkia kartan ulkopuolella välillä myös leikaten itsensä. En tiedä johtuuko se siitä, että IO-lukee pikselin värin virheellisesti vai mistä. Sovellus myös kaatui nullpointererroriin esimerkiksi kartassa brc201d.

...\PathfindingLab-master\maps\brc201d.png
BufferedImage@5389060a: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@441e71e3 transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 800 height = 800 #numDataElements 4 dataOff[0] = 3
Img width: 800 img height: 800
X: 577 Y: 41
X: 386 Y: 452
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at PathfindingLab.algorithms.DijkstraPath.printRoute(DijkstraPath.java:132)
        at PathfindingLab.ui.GUI.drawPath(GUI.java:224)
        at PathfindingLab.ui.GUI.lambda$buildScene$3(GUI.java:189)

Oma tietorakenne Node.java on selkeästi toteutettu.
Vaikka edellisestä vertaisarvioinnista ei ole kulunut montaa päivää, on projekti selvästi edennyt ja tätä arviotakin kirjoittaessa on tullut uusi commit. Jatka samaan malliin!

Testikattavuutta painaa alas käyttöliittymän sisältäminen raporttiin. Build.gradlessa korvaa vanha ['/ui**'] -> ['PathfindingLab/ui**'], niin prosentit nousevat mukavasti.

Testeistä epäonnistuivat seuraavat:
DijkstraPathTest. dijkstraFindsRoute
DijkstraPathTest. nodesAreSaved

Kaiken kaikkiaan sovellus näyttää ja vaikuttaa hienolta ja sillä oli hauska leikkiä ja kokeilla useita eri karttoja.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.