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

472

    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. Kuka oli töllöntyön tekijä?

      Ketä on nyt pidätetty? Oliko syy mustasukkaisuus tyttöystävästä tai oliko muita lieventäviä seikkoja? Katuuko tekijä nyt
      Pieksämäki
      28
      4068
    2. Kotikasvatus siitä se lähtee eli missä meni vikaan että lapsesta tuli puukottaja

      Ottakaa muut oppia, normaali kotielämä. Ei liikaa edes hengellisyyttä.
      Pieksämäki
      45
      2105
    3. Kun kohtaat jotain ainutlaatuista

      ja upeaa, johon rakastut ehkä ensimmäistä kertaa ihan tosissaan. Sitten sähläät kaiken omien epävarmuuksien vuoksi. Eikö
      Ikävä
      45
      1330
    4. Minkälaisessa asunnossa

      haluaisit kaivattusi kanssa asua?
      Ikävä
      82
      1185
    5. Mua ahdistaa

      Tämä juttu. Miksi nainen torjuit minut vaikka kiinnostuksen merkkejä oli? Eihän tämän jutun olisi tarvinut johtaa sen pi
      Ikävä
      38
      1138
    6. Ei tämä enää tervettä oo

      Sydän pamppaillen oon jo tunnin meinannu laittaa sulle viestiä... Sormi tärisee lähetä kuvakkeen kohdalla.
      Ikävä
      25
      1106
    7. Perämoottoreiden huolto melkoisen kallista

      Minulla on tuollainen keskikokoinen perämoottori ja yleistä merkkiä. Kyselin sille keväthuoltoa paikallisista liikkeistä
      Savonlinna
      49
      1047
    8. Pasi Turunen: Ensimmäisenä Helluntaina ei kastettu sylivauvoja!

      Tänään 31.5.2026 Pasi Turunen noin vastasi soittajan kysymykseen! Raamattu EI KERRO ketä kastettiin
      Kaste
      161
      935
    9. Tanskademarit: ilman risusavottaa ei rahaa!

      Näin persuna on pakko ihailla noita Tanskan demareita. Tanskalaisessa sosiaalidemokratiassa ei työtön saa rahaa ellei os
      Maailman menoa
      173
      861
    10. Mikä siinä on että sinkku yrittää varattua?

      Siis ihan aina yrittävät muiden puolisoita.
      Sinkut
      57
      845
    Aihe