Onko shakkipeli vaikea koodata?

moukantuurilla

Siis sellainen jossa tietokone on vastustajana. Onnistuuko esimerkiksi Pythonilla? Ulkoasua ei tarvitse miettiä, voi olla vaikka ihan tekstiversio. Toimintalogiikasta lähinnä siis kysymys. Miten arvotaan esimerkiksi avaussiirto, lähdetäänkö esim. moukalla vai hevosella? Kuinka tarkastetaan kuka uhkaa ja mitä?

Kannattaisiko asiaa alkaa miettimään oliopohjalta? Olisi ensin luokka Nappula, josta sitten periytettäisiin varsinaiset pelinappulat, kuten juuri Moukka, Kurgo yms, ja niillä olisi sitten omat ominaisuutensa. Nappulaoliossa pitäisi tietysti olla myös sijainti, ja ehkä joku lippu uhataanko sitä vai ei?

Pitäisikö jokaisella nappulalla olla myös 8x8 boolean-taulukko, johon päivitettäisiin aina ruudut joihin on mahdollista siirtyä? Jos jollain ruudulla olisi toinen nappula, niin sitten tarkastettaisiin mikä se on, ja mahdollisesti syötäisiin se pois.

Kuinka toteutettaisiin logiikka, jolla selvitettäisiin onko joku siirto kannattava? Ettei esimerkiksi kuningattarella moukkaa syödessä tule tilannetta, jossa vihollisen moukka syökin heti perään kuningattaren. Siinhän tulee persnettoa melkoisesti. Olisiko nappuloille annettava joku arvo?

Ilmeisesti jollain tavalla pitäisi laskea siirtoja eteen päin? Eli olettaa mitä vastustaja tekee, ja sitten laskea vaihtoehtoja.

4

444

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ei_turhaa_vaivaa
    • chess-man

      Ubuntun sovellusvalikoimasta asenna PyChess. Taitaa olla valmiiksi 100% pythonilla kirjoitettu? ;-)
      Komentoriviltä komentaen voit ladata lähdekoodin.

    • moukantuurilla

      Kiitoksia vinkkilöistä. Alanpa tutkiskelemaan niitä.

    • Tässä vikipedian artikkeli asiasta:

      https://fi.wikipedia.org/wiki/Tietokoneshakki

      Muuten. Pelipuiden laskentaan on käytetty A* -algoritmia (A star). Uudempi ja parempana pidetty on Hans Berlinerin at al B* -niminen algoritmi.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nainen kokki autossa kammottavan kuoleman sähköauto-Teslan syttyessä tuleen.

      https://www.is.fi/autot/art-2000011652873.html Näin vaarallisia sähköautopalot voivat olla.
      Maailman menoa
      84
      5157
    2. Persuja ei aluevaltuustoissa näy

      Ei tunnu persuja paljon paikalliset asiat kiinnostavan, vaan ainoastaan ulkomaalaiset, joku Israel ja Trumpin fanitus.
      Maailman menoa
      25
      3480
    3. Päivän Riikka: Uudenkaupungin autotehdas hiljeni

      Näin ne 100 000 uutta pysyvää ei-tempputyötä yksityiselle sektorille tämän hallituksen ansiosta syntyy. Työntekijöille j
      Maailman menoa
      38
      2828
    4. Riikka vie Suomen kohta ykköseksi työttömyyskisassa

      Espanja: 10,5 % Suomi: 10,3 % Ruotsi: 9,3 % Kisa on tiukkaa, mutta Riikalla hyvä draivi päällä. Vasemmistolaisen päämin
      Maailman menoa
      9
      1972
    5. Kerro kaivattusi nimi tai nimikirjaimet

      🌠 Tähdenlento! Kirjoittamalla kaivattusi nimen tai nimikirjaimet tähän, saattaa toiveesi toteutua.
      Ikävä
      58
      1820
    6. Miksi pitäisit enemmän

      Minusta kuin siitä toisesta?
      Ikävä
      47
      1586
    7. Alkuvuodesta poistuu työttömyyskorvaus kaikilta joilla on säästössä rahaa

      Tippuu korvaukselta iso määrä työttömiä.
      Maailman menoa
      263
      1476
    8. Mitä meidän välillä

      Tulee tapahtumaan vai tuleeko mitään?
      Ikävä
      94
      1382
    9. Tämmönen höpsö

      Höpönassu mä olen. En mikään erikoinen…hölötän välillä ihan levottomia. Tykkäisit varmasti jos olisin siellä sun vieress
      Suhteet
      44
      1356
    10. Hiljaisuus

      Tarkoittaa välinpitämättömyyttä, henkistä väkivaltaa ja kiusaamista. Olet valinnut hiljaisuuden.
      Ikävä
      73
      1078
    Aihe