Giter Site home page Giter Site logo

shakkitekoaly's Introduction

Shakkitekoaly

Tiralabra projekti

shakkitekoaly's People

Contributors

jakousa avatar

Watchers

James Cloos avatar  avatar

shakkitekoaly's Issues

Koodikatselmointi

Latasin projektin ensin 17.11 klo 19.30 mutta huomattuani uuden, hyvin päivitetyn version,
latasin sen uudestaan 19.11 klo 9. Nyt kaipaamani asiat olivatkin jo tulleet: luokkien selkeämpi
jako omiin paketteihin, sekä ihmispelaajan mahdollisuus. Sekä monia muita pikku ominaisuuksia.

Aikatauluun nähden tekoäly on edennyt hyvin; ohjelma toimii, ja pääsee jo pelaamaan tekoälyä vastaan!
Koska aina voi laajentaa lisää, niin annan palautteen lopuksi ehdotuksen lisäominaisuuksista.

Kiva uusi odottamaton ominaisuus kertoo, kauanko kesti koneen siirron tekemisessä. Näytetty aika
2895834438422ms kuitenkin vaikutti epäilyttävältä, mikä tosin johtuu siitä, että ajat
aikaLopussa ja aikaAlussa on plussattu eikä vähennetty. Olisiko ihmisystävällisempi näyttää aika sekunteina?

Askel todellisempaan shakkipeliin voisi halutessa olla, että peli näyttäisi kummankin pelaajan
kohdalla paljonko aikaa on kulunut siihen asti. Tämä mahdollistaisi esimerkiksi pikapelin.

Pelin aloitusvaiheen tulostuksissa näkyy pientä ihmeellistä toimintaa:

Haluatko pelata? Y/N
Y
Haluatko aloittaa? Y/N
Y
Minkä tasoinen toinen pelaaja?
Suosittelen < 5 //kun tähän vastasi 3 niin tulostui ensin lauta ja syöte tuli näkyviin tuonne alas
trlqklrt0
ssssssss1

##2
##3
##4
##5

SSSSSSSS6
TRLQKLRT7
abcdefgh*
0 //lisäksi tämä 0 tulostuu joka kerta enkä ymmärtänyt sen tarkoitusta.
Minkä haluat siirtää. esim. C5
3

Myös tällainen tulostusongelma tuli vastaan.

Haluatko pelata? Y/N
Y
Haluatko aloittaa? Y/N
Minkä tasoinen toinen pelaaja?
Suosittelen < 5
Y
trlqklrt0
3
ssssssss1

##2
##3
##4
##5

SSSSSSSS6
TRLQKLRT7
abcdefgh*
0

Nämä tulostusongelmat tosin tapahtuvat vain satunnaisesti. Jokaisen siirron jälkeen kuitenkin 0 tulostuu pelilaudan jälkeen.

Pelilauta on numeroitu alhaalta ylös 7,6,5,... Tämä ei kuitenkaan ole oikean shakkilaudan numerointi. Ymmärtääkseni näin on numeroitu siksi että pelin logiikka toimii näin. Kenties tämän voisi korjata kääntäjällä: laudan numeroisi samoin kuin oikean shakkilaudan, mutta joka kerralla antaessa siirron logiikalle, käännettäisiin saatu siirto niin että logiikka ymmärtää mitä on haluttu siirtää. Etenkin tottunut shakinpelaaja menee hämilleen nykyisestä numeroinnista.

Sitten lisäominaisuuksia varten ehdotuksia:
shakkipeliin liittyen:
kaksoissiirto, linnoitukset, ohestalyönti (tosin erityisen vaikea toteuttaa), laudan numerointi. Sotilaan korottaminen? En testannut, mutta toivottavasti kuningas ei voi liikkua uhattuun ruutuun. Kuningas ei saa myöskään linnoittaa uhatun ruudun ylitse.

tekoälyyn liittyen:
sotilaat hallitsisivat keskustaa (eli tekoäly suosisi etenkin avauksessa d- ja e-sotilaiden siirtämistä).
Alussa pyrittäisiin linnoittamaan piakkoin.
Ei liikaa saman nappulan peräkkäin siirtämistä. (esim tornin siksakkaamista).
Lähettipari yhdessä on parempi kuin ratsut (suljetussa asemassa tietenkin eri juttu).
Käytännössä 2 tornia on yhdessä parempi kuin kuningatar.

Koodikatsemointi 1

Ohjelma ladattu 19.11 klo 10:41

  • ♖ Tekstipohjainen käyttöliittymä on yksinkertainen ja toimiva. Unicodesta löytyy shakille omat symboolit, joilla voi parannella tulostuksen ulkoasua minimaalisella panostuksella. https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode
  • ♛ Ajan kulun tulostus näyttää tällä hetkellä lisäävän ajan yhteen (Shakkipeli.pelaa()), eikä vähennä kuten voisi olettaa. Aikatestejä voisi refaktoroida omaksi jutukseen.
  • ♘ Javadoc on melko hyvällä mallilla, joskin muutamaa luokkaa olisi hyvä täydentää.
  • ♝ Alkukyselyssä hoidetut huonot syötteet voisi napata paremmin, samaten Pelaaja.teeValinta() metodissa. Tällä hetkellä väärät syötteet johtavat ohjelman loppumiseen.
  • ♔ Ohjelman rakenne on hyvä, eri osa-alueet on jaettu hyvin omiin paketteihin ja metodit on selkeästi nimetty.
  • ♟ Mukaan voisi ottaa vielä muutaman shakin säännön ja kikan, kuten sotilaiden korotus ja kuninkaan tornitus.

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.