Shakkitekoälyn ohjelmointi Unityssä
Joensuu, Jere (2023)
Joensuu, Jere
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023120935659
https://urn.fi/URN:NBN:fi:amk-2023120935659
Tiivistelmä
Opinnäytetyön päätarkoitus oli tutkia shakkipelien ohjelmointia ja luoda tekoäly, joka kykenee toimimaan vastustajana oikealle pelaajalle. Projektin kehittämiseen käytettiin erilaisia tekniikoita ja algoritmeja, joita on tietojenkäsittelyn koulutuksessa opetettu.
Tutkimus keskittyy shakkipelien ohjelmointiin, ja erityisesti tekoälyn integroimiseen peliin. Projektin aikana luotiin niin sanottu ”algoritminen” tekoäly, jonka toiminta perustuu suhteellisen yksinkertaiseen matematiikkaan ja valmiisiin taulukoihin optimaalisista pelilauta-asetelmista.
Shakki toimii tekoälyn tutkimiseen erittäin toimivana alustana sen vähäisten sääntöjen vuoksi. Nämä säännöt ovat helposti opetettavissa sekä ihmiselle että tekoälylle, mikä tekee tekoälyn toiminnallisuuden seuraamisesta ja kehittämisestä helpompaa.
Luotu tekoälyvastustaja kykenee haastamaan harrastelijapelaajat, jolle kaikki shakin säännöt ja perustaktiikat ovat tutut. Tämä edellyttää erilaisten tekoälyalgoritmien ja -tekniikoiden toteuttamista virtuaalisen vastustajan luomiseksi, joka voi kilpailla tehokkaasti ihmispelaajien kanssa. Tavoitteena ei siis ollut luoda tekoälyä, joka kykenee haastamaan valmiita ammattitason tekoälyjä.
Tutkimus keskittyy shakkipelien ohjelmointiin, ja erityisesti tekoälyn integroimiseen peliin. Projektin aikana luotiin niin sanottu ”algoritminen” tekoäly, jonka toiminta perustuu suhteellisen yksinkertaiseen matematiikkaan ja valmiisiin taulukoihin optimaalisista pelilauta-asetelmista.
Shakki toimii tekoälyn tutkimiseen erittäin toimivana alustana sen vähäisten sääntöjen vuoksi. Nämä säännöt ovat helposti opetettavissa sekä ihmiselle että tekoälylle, mikä tekee tekoälyn toiminnallisuuden seuraamisesta ja kehittämisestä helpompaa.
Luotu tekoälyvastustaja kykenee haastamaan harrastelijapelaajat, jolle kaikki shakin säännöt ja perustaktiikat ovat tutut. Tämä edellyttää erilaisten tekoälyalgoritmien ja -tekniikoiden toteuttamista virtuaalisen vastustajan luomiseksi, joka voi kilpailla tehokkaasti ihmispelaajien kanssa. Tavoitteena ei siis ollut luoda tekoälyä, joka kykenee haastamaan valmiita ammattitason tekoälyjä.