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

412

    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. Epäily: Oppilas puukotti kolmea Pirkkalan koululla

      Tämänhetkisen tiedon mukaan ainakin kolme oppilasta on loukkaantunut puukotuksessa Pirkkalan Vähäjärven koululla. Myös e
      Pirkanmaa
      317
      8103
    2. Jos yhdistät nimikirjaimet

      Jos yhdistät sinun ja kaivattusi ensimmäisten nimien alkukirjaimet mitkä nimikirjaimet tulee? Sinun ensin ja sitten häne
      Ikävä
      99
      6349
    3. Jos olisit täällä

      Tosin en tiiä miks oisit. (Ja hävettää muutenkin kun ei muka muulla tavoin osaa kertoa tätäkään) Jos jollain pienellä
      Ihastuminen
      174
      3673
    4. Oletko katkera kun

      Et saanut kaivattuasi
      Ikävä
      70
      2390
    5. Kyllä se taitaa olla nyt näin

      Minusta tuntuu et joku lyö nyt kapuloita rattaisiin että meidän välit menisi lopullisesti. Sinä halusit että tämä menee
      Ikävä
      38
      2386
    6. Paljon niitä puheita

      susta liikkuu. 🤮
      Tunteet
      39
      2173
    7. Odotan että sanot

      Sitten siinä että haluaisit vielä jutella kahdestaan kanssani ja sitten kerrot hellästi että sinulla on ollut vaikea san
      Ikävä
      22
      2166
    8. Pirkkalan koulussa puukotus, oppilas puukotti kolmea

      Ilmeisesti tyttöjä ollut kohteena.
      Maailman menoa
      196
      2014
    9. Mitä haluat sanoa tällä hetkellä

      Hänelle 🫶 ⬇️
      Ikävä
      83
      1877
    10. Olet kiva

      Olet kiva :)
      Ikävä
      48
      1575
    Aihe