Mulla on omasta näkökulmastani kunnianhimoinen ja työläs projekti menossa. Haluan laskea tiettyyn tasoon saakka shakin kaikki mahdolliset siirrot. Käytännössä se tarkoittanee muutamaa siirtovuoroa. Ohjelmani, jossa on jo 663 riviä ja mitä siitä syystä ei ole järkeä täällä listauksena julkaista, tuottaa jo oikeat arvot kahdelle ensimmäiselle siirrolle. Eli valkoisella on ensiksi mahdollisuus siirtää 20 eri tavalla (8 sotilasta 1 tai 2 eteenpäin ja jompaa kumpaa ratsua 2 paikkaan = 8*2+4=20). Ohjelma tuottaa myös oikean arvon - jos se ei kaadu muistinhallinan ongelmiin - mustan ensimmäisen siirron jälkeen: koska mustallakin on mahdollisuus tehdä ensimmäinen siirto 20 eri tavalla on shakissa kahden siirron jälkeen 20*20=400 erilaista tilannetta. Toivon, että pystyn laskemaan vielä valkoisen toisen siirron jälkeisen mahdollisten pelien määrän. Pitäisi osoitinmuuttujien hallintaa vähän opiskella, ettei ohjelma joskus kaadu.
Koodi, on kauheeta ja ehkä kannattaisi aloittaa tarkemmin speksit miettien puhtaalta pöydältä: https://www.petke.info/shakki4.txt
Sinänsä jopa hieman vaikea uskoa* että muisti tulisi tuossa (valkoisen 2. siirtoon) mennessä minkäänlaiseksi ongelmaksi. Tuossa vaiheessa ei ole ollut edes mahdollista vaihtaa nappuloita, joten saat minkä tahansa tilanteen tallennettua 32 tavuun. Ja eri tilanteita on suuruusluokkaa 10 000. (20*20*n.25) Eli 320 kt muistia. Ja vaikka siihen vielä 10 000 yksikön hashmap päälle niin ollaan ehkä megatavussa.
* Siis tokihan minä uskon, koska aina voi tehdä asiat hullunkurisesti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.