Giter VIP home page Giter VIP logo

chess's People

Contributors

jjjjm avatar ktojala avatar lofhjann avatar saskeli avatar strajama avatar

chess's Issues

Vertaisarviointi2

Repository ladattu 21:40 27.02.20

Parannusehdotuksia koodiin:

  • GameState.java käsittää ohjelman tilaa määrittäviä muuttujia, jotka
    osuvien nimivalintojen ansiosta kertovat jo koodin toiminnasta yksinään.
    Tähän ei enempää kommentointia tarvita.

  • Useammassa paikassasa tuli TODO merkintöjä vastaan. Parempi olisi
    pyrkiä täyttämään saman tien se premissi, jota lähtee tavoittelemaan
    yhdessä työskentelysessiossa. Jos tämä ei onnistu, premissiä voi
    madaltaa, tai siitä voi luopua kokonaan. Tällöin turhaa keskeneräistä
    koodia ei pääse muodostumaan.

  • Useampi nappula pystyy liikkumaan kaikkiin suuntiin ja täten samoja
    suuntia on lueteltu erikseen useammassa paikassa. Tämä on DRY-periaatetta
    vastaan. Parempi on luetella kaikki tavanomaiset suunnat yhdessä
    paikassa kerran ja sitten viitata kyseiseen luetteloon sitä tarvittaessa.

  • Pelkät suunnat eivät tarjoa tarpeeksi näppärää käsitteistöä
    shakkisiirtojen kuvaamiseen. Kätevämpää on luoda lisää käsitteistöä
    ja hyödyntää niissä alakäsitteenä Direction-luetteloa. Tällöin
    Direction-luettelon voi määrittää käsittämään ainoastaan tavanomaiset
    suunnat shakkilaudalla poislukien hevosen spesifimpi
    siirtymälogiikka.

Vertaisarviointi 1

Vertaisarviointi 1

Koodi ladattu 14.2 klo 22

Aloitin projektiin tutustumisen ajamalla testit ja buildaamalla projektin. Testit menivät hyvin läpi ja buildikin onnistui, joskin parin checkstyle-virheen saattelemana. Suorittamisen kannalta projekti siis vaikuttaa olevan oikein hyvässä kunnossa.

Itse koodista huomasin ensimmäisenä hyvän luettavuuden. Asiat oli nimetty järkevästi ja projektirakenteeltaan koodi oli siististi laadittu. Pidin myöskin projektin tavasta mallintaa pelilautaa, sillä yksiulotteinen taulukko näyttää mahdollistavan mukavan elegantteja ja nopeita tapoja laskea pelilaudan tapahtumia.

Mitään varsinaista huomautettavaa en projektista oikein keksinyt. Projektin tekijällä on selkeästi vahva visio lopputuloksesta ja koodia on lähdetty kirjoittamaan järjestelmällisesti sitä kohti. Pieniä pilkunviilauksia koodista tosin löytyi:

  • Arraylist toteutuksesta löytyi yksi taikanumero rivillä this.data = new Object[10]; . Lukuarvon 10 voisi ehkä korvata jollakin vakiomuuttujalla.
  • Metodin evaluateNegaMax nimi on hieman hämmentävä, sillä se vaikuttaisi olevan varsinainen negamax-algoritmi kun taas negaMax vaikuttaisi olevan metodi, joka kerää sallittujen siirtojen joukosta sen siirron, jonka lapsien arvioitu arvo on kaikkein suurin(tai pienin). Tämä aiheutti hieman hämmennystä ainakin itselleni koodia ensimmäistä kertaa luettaessa.

Kaiken kaikkiaan projekti vaikuttaa olevan siis erinomaisella mallilla.

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.