Shakkitietokoneen toteutus Java-ohjelmointikielellä
Karhu, Aaro (2025)
Karhu, Aaro
2025
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2025-06-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202505175698
https://urn.fi/URN:NBN:fi:tuni-202505175698
Tiivistelmä
Tässä kandidaatintutkielmassa tarkastellaan shakkipelin sääntöjä sekä niitä teknisiä vaatimuksia, jotka on toteutettava, jotta voidaan kehittää tietokoneohjelma, jota vastaan pystyy pelaamaan shakkia.
Työssä mallinnetaan shakkilauta ja nappuloiden liikkumissäännöt, tunnistetaan pelin erityistilanteet sekä rakennetaan tekoälypohjainen vastustaja. Tekoälyn perustana toimii Minimax-algoritmi, jota optimoidaan alpha-beta-karsinnalla siirtojen arvioimiseksi tehokkaammin.
Lisäksi työssä esitellään tunnettuja shakkimoottoreita, kuten Stockfish ja AlphaZero, ja tarkastellaan niiden arkkitehtuureja ja lähestymistapoja pelin ratkaisemiseen. Työn lopuksi esitellään Java-ohjelmointikielellä toteutettu oma shakkitietokone, sen onnistumiset sekä ongelmakohdat. Yhteenvedossa pohditaan myös mahdollisia jatkokehityssuuntia tulevia versioita varten.
Työssä mallinnetaan shakkilauta ja nappuloiden liikkumissäännöt, tunnistetaan pelin erityistilanteet sekä rakennetaan tekoälypohjainen vastustaja. Tekoälyn perustana toimii Minimax-algoritmi, jota optimoidaan alpha-beta-karsinnalla siirtojen arvioimiseksi tehokkaammin.
Lisäksi työssä esitellään tunnettuja shakkimoottoreita, kuten Stockfish ja AlphaZero, ja tarkastellaan niiden arkkitehtuureja ja lähestymistapoja pelin ratkaisemiseen. Työn lopuksi esitellään Java-ohjelmointikielellä toteutettu oma shakkitietokone, sen onnistumiset sekä ongelmakohdat. Yhteenvedossa pohditaan myös mahdollisia jatkokehityssuuntia tulevia versioita varten.
Kokoelmat
- Kandidaatintutkielmat [10016]