Code Monkey home page Code Monkey logo

miinat's Introduction

Minesweeper clone written in Java (university coursework)

https://github.com/tahuomo/Kesalabra/wiki

Building:
$ ant jar

Running (GUI):
$ java -jar dist/Miinat.jar

Running (console UI):
$ java -cp dist/Miinat.jar miinat.ui.ConsoleUi

miinat's People

Contributors

tpatja avatar

Watchers

James Cloos avatar  avatar

miinat's Issues

Koodikatselmointi 1

Projekti ladattu 3.6.2013 kello 16.20

Dokumentaatio:

  • Aihemäärittely oikein kattava ja selkeä.
  • Minikaavio on juuri niin suuntaa antava, kuin pitääkin.
  • Luokkakaaviossa jo luokkien tärkeimmät ominaisuudet kirjattuna.
  • Sekvenssikaavio oikein toteutettu ja selkeä. Olisi voinut olla toinen kaavio vaikka vielä lisäksi toiminnallisuudesta, kun pelaaja klikkaa avaamatonta ruutua.

Testit: (koodi herjaa BUILD FAILED, eikä ollut aikaa lähteä etsimään syytä, joten katsoin nopeasti testit päällisin puolin)

  • Testit ovat selkeästi kasattuja ja loogisesti nimettyjä. On helppo ymmärtää mitä kukin testi testaa.
  • Moni testi testaa useilla eri arvoilla, jolloin saadaan testikattavuus isoksi, hyvä!

Koodi:

  • Paketit ja miinat ovat hyvin jaettu selkeisiin kokonaisuuksiin.
  • Tykkään, että koodi on englanniksi, mutta silti selkeää.
  • Javadocin määrää voisi lisätä pienempiinkin metodeihin MiinaEngine-luokassa, koska se nopeuttaa huomattavasti metodin toiminnan ymmärtämistä. (vaikka hyvin nimetyt metodit oikeastaan ajaakin käytännössä saman asian)
  • Lisäksi ConsoleUi:ssä puuttuu vielä kaikki docit
  • J.doc olisi hyvä myös laittaa luokille. Toistaiseksi vielä tyhjänä.
    (ymmärrän toki, että javadocit ei ole se tärkein asia vielä tässä vaiheessa, mutta helpottaa huomattavasti tulevaa urakkaa, kun laittaa edes vähän jotain infoa metodista samalla, kun sen luo.)
    Kokonaisuutena oikein selkeä paketti. Koodi on puhdasta ja hyvin sisennettyä, metodit hyvin nimettyjä ja dokumentointi lähes ajan tasalla! Good job!

Koodikatselmointi 2

Katselmoitava koodi: tpatja, miinat

Tutustuin koodiisi jo 7.6. 1200 alkaen.

Synkattu 9.6. 0830, jonka perusteella katselmointi tehty.

Koodisi on pääasiassa selkeää ja helposti luettavaa, paljon toiminnallisuuksia joita en ole käyttänyt enkä siksi voi ihan kaikkeen ottaa kantaa.

Luokista:

  • HighScoreEntry: Kannattaisi pilkkoa pienempiin osaluokkiin; tulosten kirjoittaminen ja lukeminen on toiminnallisuutta joka tulisi clean coden mukaan olla omassa luokassaan.
  • Harkitse, kannattaisiko HighScoreEntry ja siihen olennaisesti liittyvät luokat siirtää omaan pakettiinsa; nehän ovat lähinnä tallennukseen liittyviä, voisivat siksi olla erillään pelilogiikasta.
  • MiineEngine: Kannattaisi pilkkoa Level-määrätyt arvot omaan luokkaansa, clean code.
  • ConsoleUI: Kannattaisi pilkkoa GameState-määrätyt arvot omaan luokkaansa, clean code.
  • GUI: kannattaisi pilkkoa UiSquare-luokka omaan luokkaansa, jota tämä luokka käyttää, clean code. Toistoa: GameState-määrätyt arvot, jos tämä olisi oma luokkansa, ei tulisi toistoa. Metodit initUI, updateUI voisi pilkkoa pienempiin osametodeihin, clean code. Kannattaa harkita myös toiminnallisuuden (MouseListener implementation) pilkkomista omaan luokkaansa erilleen GUI:n näyttämisestä, clean code.
  • HighScoreDialog: kannattaisi pilkkoa konstruktori pienempiin metodeihin, esim 24-32, 34-49.

Testeistä:

  • Testit HighScore*:lle ilmeisesti vielä kesken; levylle kirjoitusta/lukua ja poikkeusten heittämistä kannattaa testata. -Comparator ja -Adapter kannattaa myös testata.
  • Muut testit hyviä, kattavuus hyvä, kaikki menee läpi.

Dokumentaatio ei kuulu katselmoinnin piiriin, mutta mainittakoon, että on aika hyvällä 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.