Coder Social home page Coder Social logo

shakkipeli's Introduction

Shakkipeli

Laitoksen koneella lagaa pahasti.

Käyttöohjeet.

Tässä shakkipelissä tarkoitus on voittaa peli kaatamalla toisen pelaajan kuningas. Molemmilla pelaajilla on 7 sotilasta jotka liikkuvat alussa kaksi aselta eteen ja sen jälkeen vain yhden eteenpäin. Ne syövät toisia nappuloita niitten edessä olevan paikan vasemmalta ja oikealta puolelta. Kuningas liikuu yhden askeleen mihin tahansa suuntaa, mutta ei saa ikinä liikua sitä vaarantavaan tilanteeseen. Se syös samalla tavalla muita nappuloita. Ritari/hevonen liikkuu ja syö L-muodossa, eli esimerkiksi kaksi paikkaa eteen ja yhden sivulle tai yhden eteen ja kaksi sivulle. Lähetti liikkuu ja syö menemällä vinoittain ruuduilla. Torni menee/syö sivuttain. Kuningattarella on tornin ja lähetin liikkeet. Erikoissiirtona sotilas muuttuu kuningattareksi päästyään laudan päähän. Peli loppuu kun toisella puolella on kuningas shakissa ja mahdollisia liikkeitä ei enään ole.

  • Pelaajat avaavat ohjelman.
  • He päättävät kumpi pelaa valkoisella ja kumpi mustalla.
  • Valkoinen aloittaa pelin ensimmäisellä siirrolla ja musta hänen jälkeensä.
  • Siirrot alkavat kun oikea pelaaja valitsee nappulan, jolloin nappulan ruutu näkyy sinisenä.
  • Nappuloita liikutetaan valitsemalla ne hiirellä ja valitsemalla haluttu paikka.
  • Peli jatkuu kunnes toisen kuningas on shakissa.

Dokumentaatio

Shakkipeli, jossa kaksi ihmistä pelaavat normaalia shakkia toinen mustilla ja toinen valkoisilla.

luokkakaavio

aihemäärittely

tuntikirjanpito

CheckStyle

Pit-raportti

shakkipeli's People

Contributors

klaufred avatar

shakkipeli's Issues

Koodikatselmointi

Latasin eilen illalla jo, mutta latasin nyt (24.9.2016 klo 20.53 uudestaan).

  1. Ainakin käyttöliittymän voisi olla omassa paketissa (ite laittaisn myös nappulat, mutta Valtterin mielestä ne sopivat logiikkaan, vähän makuasia kai).
  2. Mainin jutut voisi olla (teksti)käyttöliittymässä (eli kai chessGame-luokka).
  3. Aika pitkälle kehitetty tekstikäyttöliittymä kun on ilmeisesti(?) tarkotus tehdä graafinenkin käyttöliittymä. Tuntuu että logiikka ja käyttöliittymä on vähän sekaisin samassa luokassa.
  4. Tää on vaa rakenteellinen mielipide, mutta itse näkisin ettei oo niin käytännöllistä laittaa chessPiece listoja pelaajien alle, kun niitä(kaikkia) jodutaan jatkuvasti vertailemaan keskenään logiikassa(esim siirtojen laillisuudessa). Varsinkin kun kaikki nappulat näkyvät kummallekkin pelaajalle aina.
  5. Koodi ja metodit on hyvin asiallisesti nimetty ja selkeitä, ainut haittatekijä selkeyteen(minun mielestä) on jo toi aiemmin mainitsemani pakettijaon puute.

(6.) Ehkä vähän epäolennainen mutta normaalissa shakkipelissä kuningas ei varsinaisesti kuole/poistu laudalta, niin aihemäärittelyssä "kuninkaan kaataminen", testien endGamen sekä theKingIsDeadin() yhteys ja metodi kingIsDead() on omasta mielestä vähän harhaanjohtavia, mutta kai sitä shakkimattia voi kutsua tuollakin termillä. Huomionarvoista kuitenkin, että shakkipeli voi päättyä perinteisesti luovutukseen, tasapelin sopimiseen, mattiin tai pattiin.

Koodikatselmointi

Projekti haettu 8.10.2016 klo 13:55
Katsottuani ohjelmakoodia en osaa ehdottaa olennaisia parannusta vaativia kohtia. Logiikka ja Domain-pakkausten luokat näkyisivät olevan kunnossa. Testeissä näkyi että pelin toiminnot olivat hallinnassa. Käyttöliittymä taas näkyi olevan vielä vahvasti työn alla, mutta sielläkään ei ollut mitään mikä olisi osunut silmään.
Checkstylestä, Javadoc-lisäys on väärässä paikassa. Se oli dokumentin lopussa, sen pitäisi olla Treewalkerin tagien välissä. Kokeilin siirtää sen paikalleen ja checkstyle lähti toimimaan.
Testeissä oli yksi todella pieni juttu. Taking over -metodia testattaessa olet kokeillut sijoittaa tietttyyn ruutuun jonkin nappulan, ja "syödä" sen toisella erityyppisellä nappulalla. Nappulan tyypistä on nähty että toimiiko tuo metodi. Pawn-testin kohdalla molemmat testissä käytettävät nappulat ovat Pawn-tyyppisiä, joten lopputuloksesta ei voi päätellä onnistuiko toiminto vai ei.

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.