Git Product home page Git Product logo

dungeon-forager's People

Contributors

namirual avatar

dungeon-forager's Issues

Koodikatselmointi

Vertaisarviointi

Paketti ladattu 10:38 23.11.2017

Mielenkiintoinen aihe.

(koodia luettu 27.11. klo 21:30-22:30)

Hyvältä vaikuttaa.
Haet eri kierrosten askeleita samassa listassa, jolloin paras reitti löytyy luonnollisesti ensimmäisenä (kunhan toteutat askeleiden järjestämisen).
Hyvän oloinen rakenne, missä askeleet ja kierrokset on eritelty omiin luokkiinsa.

AStarStepComparator.java (katsottu netistä 27.11.)

heuristic: Mielestäni ei ole hyötyä ottaa karteesista etäisyyttä sqrt(x*x+y*y),
kun luolastossa voi liikkua vain vierekkäisiin ruutuihin ruutu kerrallaan.
Todellinen pienin etäisyys kohteeseen siis olisi x+y.

comparator: lisäksi karteesisen etäisyyden tarkkuus menetetään kun muutetaan double -> int.
Tässä etäisyyden voisi kertoa jollain vakiolla, jolloin saataisiin tarkempi vertailu.
Tai esimerkiksi palauttaa 1 jos val1 > val2, 0 jos val1 == val2 ja -1 jos val1 < val2.
Tähän on tärkeä keskittyä, sillä jos järjestys on epätäsmällinen niin ohjelma ei tuota lyhintä/parasta polkua luolaston läpi.

Cycle.java

visited: ovelaa käyttää taulukkoa, joka ei kopioidu sijoitusoperaatiossa (vaan on eri askeleille sama)
säästäen muistia ja helpottaa informaation jakamista.
Jos haluaisi säästää enemmän tilaa niin jokaiselle luolan ruudulle voisi olla oma taulukko/lista,
johon lisättäisiin millä kierroksella siinä on jo käyty.
Tämä sillä oletuksella, että kukin kierros koluaa vain osan luolastosta.
Jos kaikki kierrokset koluavat käytännössä koko luolaston niin tilaa ei säästy (mutta tällöin maali on luultavasti jo löydetty).

Forarger.java

Vanhassa versiossa et vielä järjestä askeleita.
Oletettavasti tätä varten olet lisännyt PriorityQueue luokan.

Vertaisarviointi 1

Projekti etenee hyvin!

  • Määrittelydokumentti kertoo hyvin kattavasti projektin idean. Ehkä Readme:ssä voisi myös kertoa lyhyesti, mistä on kyse
  • Koodi on selkeää, ja sisältää relevantteja kommentteja. Ehkä (ainakin julkisten) metodien kommentit voisi standardoida JavaDoc -muotoon, joka helpottaisi mm. editori-integraatioita ja mahdollista dokumentaation generointia
  • Projektissa on yksikkötestejä, jotka näyttävät testaavan olennaisia erityis- ja perustapauksia. Tosin testien ajaminen komennolla gradle test -i ei näyttänyt onnistuvan, testejä ei suoriteta, joten niiden oikeellisuus jäi tällä kertaa tarkistamatta

Koodikatselmointi suoritettu 2017-11-26T15:37+0200.

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.