Ristinolla

tictac

Voisiko joku hahmottaa miten ristinolla pelissä voi toteuttaa suorien tarkistuksen? (en tarvitse koodia, vaan sanoilla voi kuvata)

Eli on vaikka 30x30 kentä ja pitäisi etsiä 5 suorat.

Peli vaikuttaa erittäin monimutkaiselta jopa 3x3 kentällä, jos pitäisi vielä toteuttaa tekoälykin.

9

1978

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • void

      Tarkoitatko ristinollaa (3x3) ruudukko vai sitä toista peliä missä laitetaan isompaan ruudukkoon rasteja ja pyritään saamaan 5 omaa peräkkäin?

      Ratkaisuja on useita. Ristinollan tapauksessa voisit tehdä pelipuun, joka sisältää kaikki mahdollisuudet, muistaakseni pelipuun koko ei ole kovin suuri. Yleisemmässä tapauksessa pelipuun koko kasvaa liian suureksi, jolloin täytyisi käyttää jotain rajoitinta jolla estetään liian suuri kasvu. Siis tällä tavalla voit tarkistaa sekä rivit että varmistaa sen että konetta ei voi voittaa.

      Helpompi tapa on 2-ulotteinen 3x3 -taulukko, jossa jokaista ruutua esittää 1 alkio, joka saa arvon 1 silloin kun se on risti ja -1 silloin kun se on nolla. (ristinollasta). Jos rivillä on 3 ristiä, sen summa on 3 ja kolme nollaa summa on -3 jne. Joten tarkistusrutiini yksinkertaisesti laskee rivien, sarakkeiden ja diagonaalien summan. Tyhjää ruutua esittää 0. Samalla kertaa voit kehittää logiikan, joka pyrkii löytämään ja blokkaamaan vastustajan 2 rivin sarjan.

      Yleinen 30x30 -ruudukko on hiukan monimutkaisempi tapaus, mutta numerointia kannattaa käyttää. Keksin ainakin kaksi vaihtoehtoa, eli joko käydä 30 x 30-ruudukko järjestelmällisesti läpi riveittäin, sarakkeittain ja diagonaaleittain tai sitten talletetaan potentiaalisten rivien alku ja suunta johonkin listaan, ja poistetaan listalta ne jotka vastustaja on blokannut ja lisätään sinne uudet syntyvät listat. Jälkimmäistä ratkaisua voisi käyttää alkeelliseen päättelyyn.

      Toivottavasti näistä ehdotuksista oli apua. Lisää voi löytyä netistä ja ehkä täältäkin tulee lisää vaihtoehtoja.

    • xo-xpert

      3x3-ristinolla on oma "mielenkiintoinen" tapauksensa, jota tuskin kuitenkaan kannattaa pohtia tämän enempää...

      Suorien (5 merkkiä) tarkistus on erittäin helppo toteuttaa. Ihmiselle haasteita tarjoavan tekoälyn toteuttaminen on paljon vaikeampaa.

      Mutta ensinnäkin, 30x30 kenttä on toivottoman ahdas silloin, kun lähdetään tosissaan pelaamaan ristinollaa. Mikään ei ole sen ärsyttävämpää kuin todeta, että tila loppuu -- läiskitään tässä nyt merkkejä sinne ja tänne, että saadaan ruutu täyteen ja uusi peli käyntiin.

      Suorien tarkistus tapahtuu siten, että jokaisen ruudukkoon lisätyn merkin jälkeen tarkistetaan ko. ruudusta alkaen ruudut vaaka- ja pystysuuntaan, sekä vielä vinottain aina neljän ruudun etäisyydelle saakka. Jos näistä 33:sta ruudusta löytyy viisi samaa merkkiä peräkkäin, peli on päättynyt. Koko "pelilautaa" on siis aivan turha käydä läpi tässä vaiheessa.

      Tekoälyn toteuttamiseksi sen sijaan pelilauta on käytävä läpi ainakin "käytössä olevilta osin" ja jopa moneen kertaan. Homma etenee periaatteessa esim. siten, että tekoäly kokeilee sijoittaa merkkinsä vuorollaan jokaiseen vapaaseen ruutuun, tekee em. suorien tarkistuksen ja jos peli ei ratkennut, toistaa saman vastapuolen pelimerkillä.

      Näin jatketaan kunnes löytyy pelin ratkaisuun johtava, tai ainakin paras siirto.

      Tekoälyllä ei useinkaan voi laskea siirtoja pelin ratkaisuun saakka. Vaihtoehtoja kun on käytännössä ääretön määrä jo pienemmälläkin kuin 30x30 pelilaudalla. Jo tämän vuoksi on suorien tarkistuksen lisäksi voitava pisteyttää jokainen sijoitus, ts. "asema", tietyllä tavalla siten, että kahdesta vaihtoehdosta voidaan valita parempi. Vastapuolen asema pisteytetään samalla tavoin pyrkimyksenä minimoida vastapuolen etu ja mahdollisuudet.

      Tekoälyn vaikeudet liittyvätkin lähinnä a) tuohon pisteytykseen ja b) vaihtoehtojen määrän rajaukseen. Vastaavat ongelmat ovat mm. Shakissa, vaikka vielä paljon monimutkaisempina.

      Viiden merkin ristinolla on parhaimmillaan erittäin mukaansatempaava peli kaikessa yksinkertaisuudessaan. Shakissa sen sijaan mielenkiintoa riittää paljon pidemmäksi aikaa....

      Pistäkää tänne linkkejä jos tiedätte tai löydätte hyviä ristinollapelejä!

      • 2000

      • yes!

        http://cactus.rulez.org/projects/gnomoku/

        Gnomoku 1.4
        ===========
        Gnomoku is a Gomoku game for GTK /X11. It uses the GTKmm C wrapper
        for accessing GTK itself.

        The libraries required by Gnomoku are available in GNOME 1.4. Consult
        your operating system vendor for information on obtaining GNOME
        1.4. The individual packages you need are:
            GTKmm 1.2.0 or later
            GNOMEmm 1.1.15 or later
            GTK 1.2
            gnome-libs 1.4
        And the following non-GNOME-related libraries:
            GNU LibC 2.0 / libpthread

        Gnomoku is maintained by ÉRDI Gergõ. Send comments, bug fixed, etc. to
        [email protected].

        Gnomoku was originally written by NAGY András .
        The AI code is ported from Gomoku.el from the GNU Emacs distribution.
        GNU Gettext support and Hungarian translation (c) ÉRDI Gergõ
        .

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU General Public License for more details.


      • samaa
        yes! kirjoitti:

        http://cactus.rulez.org/projects/gnomoku/

        Gnomoku 1.4
        ===========
        Gnomoku is a Gomoku game for GTK /X11. It uses the GTKmm C wrapper
        for accessing GTK itself.

        The libraries required by Gnomoku are available in GNOME 1.4. Consult
        your operating system vendor for information on obtaining GNOME
        1.4. The individual packages you need are:
            GTKmm 1.2.0 or later
            GNOMEmm 1.1.15 or later
            GTK 1.2
            gnome-libs 1.4
        And the following non-GNOME-related libraries:
            GNU LibC 2.0 / libpthread

        Gnomoku is maintained by ÉRDI Gergõ. Send comments, bug fixed, etc. to
        [email protected].

        Gnomoku was originally written by NAGY András .
        The AI code is ported from Gomoku.el from the GNU Emacs distribution.
        GNU Gettext support and Hungarian translation (c) ÉRDI Gergõ
        .

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
        GNU General Public License for more details.

        C
        http://www.gnustep.it/nicola/Applications/Gomoku/

        Python
        http://flibuste.net/pythreries/morpyon.html


      • 2000

      • Sinivuokko

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

    Luetuimmat keskustelut

    1. Työsuhdepyörän veroetu poistuu

      Hallituksen veropoliittisen Riihen uutisia: Mitä ilmeisimmin 1.1.2026 alkaen työsuhdepyörän kuukausiveloitus maksetaan
      Pyöräily
      48
      3130
    2. Ruumis kanavassa

      Mikä juttu eilen ollut poliisit palokunta ambulanssi ja ruumis auto sillalla. Tekikö itsemurhan
      Suomussalmi
      27
      2894
    3. Pieni nainen, paras nainen

      Näin se nyt vaan on. Mieheltä
      Ikävä
      121
      2326
    4. Onko tässä paljon lääkettä..

      Keski-ikäselle 43v Ketipinor 100mg Brintellix 10mg Venlafaxin 75mg Xanor 1mg Propral 40mg Xatral CR 10mg Esomepratsol 4
      Ikävä
      228
      1432
    5. Ei mitään menetettävää

      Arvostin ja kunnioitin sun tunteita. Menit nyt liian pitkälle. Mulla ei ole enää mitään menetettävää ja sä tulet sen huo
      Ikävä
      163
      1336
    6. Tapani Kiminkine n on ammuttu Helsingissä

      Kertoo poliisilähteet...
      Maailman menoa
      11
      1316
    7. Oi! Jorma Uotinen ja Helena Lindgren paljastivat yllätysuutisen: "Rakkaudella"

      Professori, tanssija, koreografi, Tanssii Tähtien Kanssa -tuomari Jorma Uotinen ja Suomen meikkitaiteen pioneeri, laulaj
      Suomalaiset julkkikset
      12
      1083
    8. Mitä sä ajattelet

      Musta tällä hetkellä? Onko vihaa, rakkautta vai halu vältellä jotta unohtaa
      Ikävä
      74
      989
    9. Pakko tulla tänne

      jälleen kertomaan kuinka mahtava ja ihmeellinen sekä parhaalla tavalla hämmentävä nainen olet. En ikinä tule kyllästymää
      Ikävä
      39
      922
    10. Riittäisi juoruakkoille puhumista tässä kylässä

      On mennyt mahottomaksi touhut. Taksi renki kuskaa akkaansa töihin lienekkö mitään lupaa yrittäjältä tähän touhuun. Kylän
      Hyrynsalmi
      13
      802
    Aihe