Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Pelit => Aiheen aloitti: elohope - 03.11.18 - klo:15.07

Otsikko: Aisleriot pasianssi - kortit eivät sekoitu kunnolla
Kirjoitti: elohope - 03.11.18 - klo:15.07
Kun kokeilen Klondikea (yhden kortin jaot), ensimmäisessä avautuvaan näkymään tuntuu valikoituvan kortteja, joiden numerot ovat melko lähellä toisiaan. Usein esimerkiksi kaikki kortit (tai lähes kaikki) ovat alle 7. Tai välillä 9-13.

Ja kun pelaa, lähekkäisiä numeroita avautuu peräkanaa tai vierekkäin turhan usein, tylsän usein. Mikä on tosi harmi, sillä onhan pasianssi oikein toimiessaan tosi jännää, eikö.

Epäilen siis, että ohjelman sekoitusrutiini ei ole kovin tehokas. Liitteenä kaksi avausnäkymää: molemmissa 2 klusteria, joiden ympärille numerot keskittyvät.

Varmaan a) joku jo vanhastaan miettii tilastollisia menetelmiä, joilla korttipakan epäsatunnaisuuden voi osoittaa todeksi tai vääräksi b) joku toinen osallistuu kehittäjien keskusteluryhmään, jossa asiaa on perusteellisesti selvitetty ja ongelma ratkeaa seuraavassa päivityksessä.

Mutta mikä on todellisuus? Onko pasianssi unohdettu Ubuntu-maailmassa?

Ubuntuni on ajan tasalla, koneena vanha i5-kokoonpano.
Otsikko: Vs: Aisleriot pasianssi - kortit eivät sekoitu kunnolla
Kirjoitti: Lepotila zZ - 03.11.18 - klo:15.36
Kokeilin Aisleriotia (Ubuntu 18.10, Aisleriot 3.22.6) eikä mainitsemaasi ongelmaa esiintynyt minulla.
Otsikko: Vs: Aisleriot pasianssi - kortit eivät sekoitu kunnolla
Kirjoitti: Tomin - 03.11.18 - klo:17.56
Lähdekoodiahan voi tutkailla tuolla (https://gitlab.gnome.org/GNOME/aisleriot/), mikä ei tietysti ole ihan helppoa, jos sitä ei ymmärrä. Katselin tuota itse vähän ja korttien sekoitusalgoritmi näyttäisi olevan kirjoitettu schemellä (https://gitlab.gnome.org/GNOME/aisleriot/blob/master/games/api.scm#L681). Scheme ei ole itselleni kovinkaan tuttu kieli, mutta tuo näyttäisi perustuvan johonkin rekursiiviseen ratkaisuun. Kyseessä saattaa olla jokin schememäinen toteutus Fisher-Yates-algoritmista (https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm), jossa silmukka on korvattu rekursiolla. Sen pitäisi kyllä olla ihan pätevä, kun se on toteutettu oikein. Lisäksi on tietysti vielä tutkittava, miten käytetyt satunnaisluvut generoidaan, koska silläkin on totta kai merkitystä (generoidaan täällä (https://gitlab.gnome.org/GNOME/aisleriot/blob/master/src/game.c#L913) käyttäen glibin funktioita (https://developer.gnome.org/glib/stable/glib-Random-Numbers.html)).

Tuli muuten tästä mieleen, että joskus aikoinaan Applen piti muuttaa iPodien sekoitusalgoritmia, koska käyttäjät valittivat sen liian vähäisestä satunnaisuudesta, vaikka kyse olikin juuri päinvastaisesta. Algoritmi ei millään tavalla ottanut huomioon sitä, että levyllä peräkkäiset kappaleet voisivat päätyä soittolistalle peräkkäin, joten kun sitä tapahtui, niin käyttäjät ajattelivat ettei algoritmi ollut tarpeeksi satunnainen. Apple muutti sitä tämän erikoistapauksen osalta, jotta käyttäjät olisivat tyytyväisiä. Sellaistakin voi sattua.
Otsikko: Vs: Aisleriot pasianssi - kortit eivät sekoitu kunnolla
Kirjoitti: elohope - 04.11.18 - klo:11.10
Kiitoksia kommenteista! Ehkä kyseessä on ominaisuus, joka estää addiktoitumista ...
Otsikko: Vs: Aisleriot pasianssi - kortit eivät sekoitu kunnolla
Kirjoitti: nm - 04.11.18 - klo:11.39
Kiitoksia kommenteista! Ehkä kyseessä on ominaisuus, joka estää addiktoitumista ...

Kuulostaa juuri samalta psykologiselta ilmiöltä, jonka Tomin mainitsi. Satunnaisuus vain toimii hieman eri tavalla kuin moni ihminen odottaa.  :)

Itse en huomaa ongelmaa Aisleriotin sekoituksessa. Toki muitakin täysin eri koodipohjaan perustuvia pasiansseja on saatavilla, jos kyseinen peli epäilyttää. Vaikkapa pysolfc:

Koodia: [Valitse]
sudo apt install pysolfc