

   ######                         
   ######                            
   ######                                                  #####       ##
   ######                                                    ###
   ######                 ####  ########       #######       ###     ##### 
   ######                    ####     ####   ###     ###     ###       ###
   ######         #######    ####     ####   ###     ###     ###       ###
   #############  #######    ####     ####   ###########     ###       ###
   #############             ##########      ###             ###       ###
   #############             ####             #########    #######   #######
	                     ####                
                           ########          


                                Versio 1.1

                             27. Elokuuta 94

                    "Voittajat eivt koskaan luovuta, 

	             eik luovuttajat koskaan voita."		

                      Copyright  1994 Esa Piiril 



Aluksi
------

Ja heti alkuun pakolliset varoituksen sanat:

TM 'L-PELI' ON FREEWAREA ELI OHJELMAA SAA VAPAASTI LEVITT VAIN
ALKUPERISESS MUODOSSAAN, PAKETTIIN 'LPELI11E.LHA' MITN LISMTT TAI
MITN SIIT POISTAMATTA. OHJELMAA EI SAA MYYD, EIK SIIT SAA MUUTENKAAN
HYTY TALOUDELLISESTI. OHJELMA TOIMITETAAN SELLAISENAAN, ILMAN MITN
TAKEITA SEN TOIMIVUUDESTA TAI MISTN MUUSTAKAAN. KYTT TT OHJELMAA TYSIN
OMALLA VASTUULLASI. TEKIJ EI OTA VASTUUTA ONGELMISTA, HARMEISTA TAI
VAHINGOISTA, JOTKA OVAT AIHEUTUNEET SUORANAISESTI TAI VLILLESTI TMN
OHJELMAN KYTST. TEKIJ EI MYSKN VASTAA ESITETTYJEN ASIOIDEN
PAIKKAANSAPITVYYDEST, OHJEIDEN OIKEELLISUUDESTA TAI MAHDOLLISISTA MUISTA
ASIAVIRHEIST. TUTUSTU HUOLELLISESTI THN KYTTOHJEESEEN ENNEN OHJELMAN
KYTTMIST. KAIKKI OIKEUDET JA KONNAT PIDTETN.

No, Huh! Toivottavasti joku viel uskaltaa kyttkin ohjelmaa tuollaisen
pelottelun jlkeen....

Mutta itse asiaan.


Mik L-peli on?
---------------

L-Peli on kahdenhengen laudalla (4*4) pelattava strategiapeli. Kummallakin
pelaajalla on L-kirjaimen muotoinen pelinappula ja lisksi laudalla on kaksi
puolueetonta pelinappulaa. Tarkoituksena on saattaa vastustaja tilanteeseen,
jossa hn ei voi en siirt nappulaansa. Peli on helppo oppia, mutta
hyvksi pelaajaksi tuleminen vaatii harjoittelua.

Tm on yksi kilpailutist, joka otti osaa MikroBitin (6-7/94)
jrjestmn ohjelmointikilpailuun.


Tmn version ominaisuuksia?
----------------------------

   + Helppokyttinen ja tysin suomenkielinen. Peli voi pelata 
      joystickilla, hiirell tai nppimistlt.

   + Toimivuus useissa amigamalleissa. Toimii mys vanhempien
      Kickstarttien kanssa.

   + Erinomainen pelitaito. Viisi vaikeustasoa takaavat, ett
      jokaiselle lytyy sopiva vastustaja.

   + Nopea. Peli on koodattu 100% assemblerilla, joten
      koneen siirtoa et joudu kauaa odottamaan.

   + Sopii niin aloittelijalle kuin kokeneemmallekkin
      pelaajalle. Pelitilanteisiin voidaan kysy apua koneelta.

   + Soveltuu mainiosti harjoitteluun. Tehdyt siirrot voidaan
      perua ja nin kokeilla erilaisia pelitapoja.

   + Lisksi pelist lytyy yli 6000 erilaista harjoitustehtv.


Peli tehdess on kytetty filosofiaa: Vain olennainen on trke ja
kaikki tarpeeton turhaa.

Mit uutta tss versiossa?
---------------------------

	1.0	Turhan htisesti liikkeelle pstetty versio. Aivan
		loppuvaiheessa oli mukaan tullut harmittavasti muutama
		paha virhe. Pahoittelen syvsti tapahtunutta.

	1.1	Ilmeisimmt bugit korjattu:

		- nappula on nyt tosiaan siiretttv _uuteen_ paikkaan
		- siirtovinkki ei saa en menun aikana (johti sekoiluun)
		- pienempi korjauksia


Mit kuuluu pakettiin LPELI11E.LHA?
----------------------------------

Ohjelmaa saa levitt vain alkuperisess muuttamattomassa paketissa, johon
kuuluvat seuraavat tiedostot:

		                                      	MD5

  l-peli        (itse peli)     	c7b5961a6898af22fdecfbe8b4a1228e

  
  l-peli.sig	(allekirjoitus)		724eb212b881291418b274d7ced0b43e


  lueminut      (tm ohje)		
  lueminut.sig  (allekirjoitus)	 	 
  historia	(lyhyt historiikki	672da75d6653460742c48479a0e90b35

		 pelin syntymisest)

  sources/
  l-peli11.s	(pelin lhdekoodi)	405fda12c5c51c70ea1adbb0c4bbd0a6
      

  lauta.gfx	(pelilauta)
  fonts.gfx	(kirjaimisto)
  aivot		(tiedot siirtojen hyvyyksist)
  motitus	(harjoitustehtvt)

Tiedostojen perss oleva 32 merkkinen koodi on tiedostoista laskettu
tiiviste algoritmilla MD5 ('Rsa Data Security, Inc. MD5 Message-Digest
Algorithm). Tiiviste on ernlainen tarkistussumma, jolla on sellainen
ominaisuus, ett on erittin eptodennkist lyt kahta eri tiedostoa,
joilla olisi sama tiiviste. MD5:n lhdekoodi on yleisesti saatavilla ja
amigallekin lytyy valmiiksi knnettyj sovelluksia.
 
Tiedostot lueminut.sig ja l-peli.sig sisltvt tekijn digitaalisen
allekirjoituksen tlle ohjeelle ja itse pelille. Niill voidaan varmistaa
niiden aitous, ett ne ovat juuri ne samat tiedostot, jotka itse ohjelman
tekij on pistnyt liikkeelle. Nin voidaan olla varmoja, ett kukaan ei
ole muuttanut niit matkan varrella (esim. lisnnyt virusta). Julkisen
avaimeni lydt mm. useimmista internetin avainpalvelimista tai
lhettmll postia tmn ohjeen lopussa olevaan osoitteeseen. 

Olisikin suotavaa, ett ohjelmien tekijt alkaisivat hydynt enemmn
julkisen salakirjoituksen mahdollisuuksia. Nm signeeraukset (l-peli.sig
ja lueminut.sig) on tehty Philip R. Zimmermannin ohjelmalla PGP (Pretty Good
Privacy (tm)), joka on vapaassa levityksess useimmille koneille. Lis
tietoa mm. julkisesta salakirjoituksesta saat lukemalla PGP:n mukana
tulevat manuaalit. PGP:n laillisessa kytss on rajoituksia, joten tutustu
niihin ennen ohjelman kytt.


Mit tarvitset kyttksesi L-peli?
-----------------------------------

        - amigan
	- nppimistn, joystickin/hiiren
	- monitorin/tv:n (50/60 Hz)
	- shk


Mitk ovat oikein pelin snnt?
--------------------------------

Snnt eivt tosiaankaan ole turhan monimutkaiset. Kummallakin pelaajalla on
L-kirjaimen muotoinen nappula ja lisksi laudalla on kaksi puolueetonta
pelinappulaa. Pelaajien on vuorollaan siirrettv L-nappulansa uuteen
paikkaan. Nappulaa voi knt ja kiert kaikkiin mahdollisiin asentoihin.
Nappulaa ei saa kuitenkaan sijoittaa minkn toisen nappulan plle. Oman
nappulan siirron _jlkeen_ saa pelaaja halutessaan siirt jommankumman
puolueettomista nappuloista uuteen paikkaan. Puolueetonta nappulaa ei siis
vlttmtt tarvitse joka kieroksella siirt. Tarkoituksena on saattaa
vastustaja tilanteeseen, jossa hnelle ei lydy en vapaata paikkaa
laudalta. Tllin viimeksi siirron tehnyt on voittaja. 


Kuinka L-peli kytetn?
------------------------

Ohjelma kynnistetn ajamalla paketista lytyv tiedosto 'l-peli'. Ohjelma
ei kynnisty, jos muistia ei ollut tarpeeksi vapaana. Kun ohjelma on
onnistuneesti saatu kynnistetty ilmaantuu ruudulle valikko, jossa on mm.
seuraavat tekstit:

		'F1 = Aloita uusi peli/harjoitus'
		'F2 = Nollaa pisteet'
		'F3 = Vaikeusaste: x'
		'F4 = Pelaajien lkm: x'

		'F10 = Poistuminen ohjelmasta'

Eli F1:lla voidaan alustaa lauta. Jos kyseess ei ole harjoitus, niin lauta
palautuu alkutilanteeseen ja samalla arvotaan aloitussiirron tekij, mink
jlkeen aloittaja vaihtuu aina vuorotellen pelist toiseen. Jos on valittu 
harjoitus (F3) painamlla nppint F1 arpoo kone uuden harjoitustehtvn.

Pisteet nollataan F2:lla, eik siit sen enemp.

Nppimell F3 vaihdetaan vaikeusastetta (1-5). Kuudes vaikeusaste on ns.
harjoittelu. Harjoitustehtvin on erilaisia tilanteita (yhteens 6144
kpl), joissa sinun tytyy _yhdell_ siirrolla motittaa vastustaja niin,
ettei hn voi en siirt. Ratkaistuasi tehtvn arvotaan jlleen uusi.
Mikli et saanut ratkaistua tehtv, voit yrit uudelleen perumalla
siirron (DEL) tai siirty uuteen tehtvn painamalla nappia.

Pelaajien lukumr vaihtaa nppin F4. Peliss voi olla pelaajia nollasta
kahteen. Nolla tarkoitaa demoa, jossa kone pelaa itsen vastaan.
Vaikeimmalla tasolla demo on aika hauskannkist nappuloiden tanssia.
Tulee ihan mieleen Wargamesin WOPR, joka eptoivoisesti etsii ratkaisua
peliin, jossa ei ole voittajaa...

F10:n kanssa kannataa olla varovainen. Se palauttaa takaisin sinne, mist
oli tultu.

Valikosta poistutaan nppimell ESC. Pelin aikana ESC tuo valikon
uudestaan nytlle, DEL palaa takaisin aikaisempaan siirtoo ja HELPill
saa koneen nyttmn siirtovinkin.

Poistuttuasi valikosta nkyy keskell ruutua pelilauta, jossa on kaksi
L-kirjaimen muotoista nappulaa (sininen ja punainen) sek kaksi
puolueetonta nappulaa (mustat pallot). Ruudun ylkulmissa on vastakkain
pelaavien nimet, joista siirtovuorossa olevan nimi on kirjoitettu
kirkkaammalla. Nimien alla on pelaajien pisteet. Pisteit saa aina
voitetusta pelist (tai harjoitustehtvn ratkaisusta).

Nappuloiden siirtely
--------------------

Nappuloita on mahdollista siirt joysctikilla, hiirell tai
nppimistll (tapaa ei tarvitse erikeen valita). Siirto tapahtuu
seuraavasti:

	Siirtovuorosi aluksi sinun on siirrettv L-nappulasi uuteen
	paikkaan. Siirtovuorossa oleva nappula vilkkuu. Nappulan
	kntminen tapahtuu viemll se ensin haluamaasi kohtaan.
	Nappulan kntmisess L-nappulan risteyskohta ei muuta ruutua,
	joten vie se haluamaasi paikkaan ja tmn jlkeen voit knt
	sen oikeaanasentoon. Nappula kntyy automaattisesti vain
	mahdollisiin asentoihin. Nappuloiden siirtelyss seuraa koneen
	esimerkki, niin opit idean nopeasti.

	Siirettysi nappulan voit vilkkuvalla kursorilla siirt
	toista puolueettomista nappuloista. Jos yritt siirt molempia
	niin aikaisemmin siiretty palaa alkuperiselle paikalleen. Jos
	olet jo siirtnyt L-nappulasi ja haluatkin viel vaihtaa sen
	paikkaa, niin voit valita L-nappulan kursorilla ja uusia siirron
	(puolueeton nappula palaa samalla alkuperiseen paikkaansa).

	Kun olet tyytyvinen tilanteeseen, valitse kursorilla tyhj ruutu.

	Joystickilla:

		nappulan siirtely 	(vasen, oikea, yls, alas)
		nappulan kntminen 	(nappi pohjassa, vasen/oikea)
		nappulan valinta	(nappi)
		siirron pttminen 	(valitse kursorilla tyhj ruutu)

	Hiirell:

		nappulan siirtely 	(vasen, oikea, yls, alas)
		nappulan kntminen 	(hiiren oikea nappi)
		nappulan valinta	(hiiren vasen nappi)
		siirron pttminen 	(valitse kursorilla tyhj ruutu)

	Nppimistll:

		nappulan siirtely 	(kursorinppimet)
		nappulan kntminen 	(nppin R)
		nappulan valinta	(nppin ENTER))
		siirron pttminen 	(valitse kursorilla tyhj ruutu)
					(tai painamalla SPACE)
		

Aloittelijalle
--------------

Muutama sana alkuun psemiseksi. Kannattaa aloittaa helpoimmasta
vaikeusasteesta ja vhitellen siirty vaikeampaan. Erittin hydyllist on
pelata harjoitustehtvi (valitse vaikeusasteeksi 'Harj.' nppimell F3).
Jos et saanut ratkaistua tehtv voit yritt uudelleen peruuttamalla
siirron DEL nppimell. Jos et milln keksi sopivaa siirtoa, niin
siirtovinkin saat painamalla HELP. Jos hvit pelin kannattaa aluksi
peruuttaa siirtoja (DEL) ja yritt uudelleen, jotta oppii vlttmn
tappioon johtavat tilanteet.

Pelitaktiikasta sen verran, ett kannattaa vltt L-nappulalla
kulmapaikkoja, sill ne johtavat usein vlittmn tappioon. 

'Tekoly':
----------

 'Kun tulin kotiin ja odotin ylltyst, eik minulle
  ollut mitn ylltyst, olin tietenkin yllttynyt.'

				-Witttgenstein

Pelin mielenkiintoisinta antia on varmaankin poikkeuksellisen hyv
pelitaito. Joten on varmaa paikallaan kertoa hieman, miten se on saatu
niinkin viisaaksi. Samalla tulee kyty vhn lpi niit yleisi
periaatteita, joilla peleihin voidaan saada 'lykkyytt'. Ne, jotka
haluavat silytt myytti ajattelevista koneista, voivat huoletta hypt
tmn teknisemmn selostuksen yli.

Yksinpeli varten piti kehitt jonkinlainen tekolyrutiini siirtojen
tekemiseksi. Mieless oli ensin oppiva jrjestelm, joka olisi viisastunut
virheistn ja siten kehittynyt aina vaan paremmaksi pelaajaksi.
Seuraavaksi innostuin sumeasta logiikasta luettuani aihetta ksittelevn
kirjan. Kaikki nm likimriset menetelmt tulivat kuitenkin
tarpeettomiksi, sill lytyi paljon tehokkaampi tapa.

Kaikkiin peleihinn on ainakin periaatteesta mahdollista mritt paras
mahdollinen pelistrategia. Kaikkiin peleihin, jotka pttyvt rellisess
ajassa voittoon tai hvin (L-peli ei vlttmtt pty) on jommalle
kummalle pelaajalle olemassa pelitapa, joka vie sen aina voittoon. Monesti
kuitenkin pelit ovat niin laajoja (esim. sakki, go, othello), ettei
tllaisen analyysin tekeminen ole kytnnss mahdollinen. Yleens peleiss
turvaudutaankin siihen, ett tilanteelle lasketaan ns. hyvyysluku,
algoritmilla joka pyrkii kuvaamaan mahdollisimman hyvin sen todellista
hyvyytt.

Tss L-pelin tapauksessa mahdollisia pelitilanteita on suhteellisen vhn
eli 18368. Symmetria syist olennaisesti erilaisia tilanteita kuitenkin vain
2296. Sill esim. seuraavat tilanteet (A,B,C,D,E,F,G,H) ovat kaikki
pelin kannalta aivan samanlaisia vaikka nyttvtkin erilaisilta. B on saatu
A:sta pyryttmll 90 astetta vastapivn ja muut peilailemalla
symmetria-akseleiden suhteen. 

				  |
	0113		3200	  |	3200		3110	
	0122		1222	  |	2221		2210
	0120		1111	  |	1111		0210
	3020		0003	  |	0003		0203
 	 A		 B	  |	 C		 D
                                  |
       ---------------------------+--------------------------
				  |
	3020		0003	  |	0003		0203	
	0120		1111	  |	1111		0210
	0122		1222	  |	2221		2210
	0113		3200	  |	3200		3110
 	 E		 F	  |	 G		 H
                                  |

Aloitin koodaamisen rutiinista (calc_board), joka antaa laudalla olevalle
pelitilanteelle numeron (0-65535) siten, ett kaikki keskenn symmetriset
tapaukset tuottavat saman tuloksen esim. kaikissa em. tilanteissa
(A,B,C,D,E,F,G,H) rutiini palauttaa tilannenumeroksi 8403.

Seuraavana tehtvn oli antaa nille tilanteille lukuarvo, joka kuvaa
niiden hyvytt. Sitten vain siirtoa tehdess etsitn kaikista mahdollisista
siirroista sellainen, joka johtaa tilanteeseen, jolla on suurin tllainen
arvo.

Tilanteiden pisteyttmist varten muodostin pelitaulukon kaikista (2296)
mahdollisesta pelitilanteesta, siten pystyarakkeelle tuli pelitilanteet
(niiden tilannenumero) ja vaakariveill pelitilanteet mihin niist voitiin
edet. Thn tapaan:


   Pelaaja 1:n  |  Pelaaja 2:n |  Pelaaja 1:n mahd.  |	Pelaaja 2:n mahd.
   tilanteet    |  tilanteet   |  siirrot	     |	siirrot
                |              |                     |
----------------+--------------+---------------------+--------------------
                |              |                     |
    17354       |    5863      | 34128,763,29300,... |  341,43206,12005,...
    874         |    29873     | 6908,47504,2766,... |  1817,34283,937,...
    7332        |    11501     | 678,13906,4311,...  |  4345,3821,53823,...
     .          |     .        |                     |
     .          |     .        |                     |
     .          |     .        |                     |

Pelitaulukossa ovat luvut ovat vain esimerkkej ja todellisuudessa
tilanteeseen kuuluvia mahdollisia jatkosiirtoja huomattavasti enemmn
(jopa 195), tilanpuutteen vuoksi niit on laitettua vain muutama malliksi.

Pelaaja 2:n tilanteet on saatu pelaaja 1:n tilanteesta siten, ett laudalla
on vaihdettu 1. ja 2. pelaajan nappulan paikat ja laskettu tt vastaa
tilannenumero. 'Pelaajan 1:n mahd. siirrot' sarakkeeseen tulee kaikkien
niiden tilanteiden numero joihin voidaan pst pelaajan 1:n tilanteesta
pelaaja 1:n pelivuorolla  esim. tilanteesta 874 voidaan siirty
tilanteeseen 47504. Aivan vastaavasti on laskettu mihin tilanteisiin
pelaaja 2:n tilanteista voidaan pst pelaaja 2:n vuorolla.

Koko L-pelin olemus on nyt koodattu thn massiiviseen pelitaulukkoon (yli
800 kb). Tst eteenpin tutkiminen jatkuu samanlaisena kaikille peleille,
sill ksiteltvn on vain puhtaita lukuja.

Ensin pit mritell ne tilanteet, jotka pttvt pelin. L-pelin
tapauksessa etsin kaikista mahdollisista tilanteista ne, joissa pelaaja 2:n
nappula voi olla vain yhdess paikassa ts. ei voi en tehd siirtoa. Nin
selville ne tilanteet, joissa pelaaja 1 on voittanut. Niit lytyi yhteens
15 kpl eli seuraavat tapaukset:


	0322  0322  2230  0010  0010  0010  2210  2210  
	3012  0012  0210  0013  0012  3010  2010  2010
	0012  3012  3210  3112  3112  2113  2110  2113
	0110  0110  0110  2222  0322  2222  3030  3000

	0100  0100  0122  0122  0010  0010  2210 
	0103  0130  0120  0102  3010  3012  2010
	1132  1123  1123  1132  2110  0112  2110
	2222  2220  0030  0003  2223  0322  3003


Siirtojen hyvyytt kuvaavat lukuarvot tallensin kahteen taulukkoon, joiden
molempien koko on 65536 tavua. Koska tilannenumero on aina vlill 0-65535
lytyy sit vastaava hyvyysarvo (1 tavu) suoraan taulukosta kyseiselt kohtaa.
Pelaaja 1:n siirtovuorolla kytetn taulukkoa 1 ja vastaavasti taulukkoa 2
silloin kun on pelaaja 2:n vuoro. Tm siksi, ett tilanteen hyvyys
riippuu olennaisesti siit kumpana osapuolena tilannetta tarkastellaan. On
huomattavaa, ett vaikka taulukossa 1 olevalla tilanteella olisi pieni arvo
(=ko. tilanne johtaa tappioon) ei vlttmtt tarkoita sit, ett vastaavassa
kohtaa taulukkoa 2 olisi suuri arvo (=ko. tilanne johtaa voittoon). Tm
siksi, ett tilanteiden hyvyytt tarkastellaan aina oman siirron jlkeen.

Laskin pelin pttvien (15 kpl) tilanteiden numerot ja annoin niille arvon
1 taulukossa 1. Vastaavasti taulukkoon 2 tuli ykkset niihin kohtiin, jotka
olivat niden tilanteiden negatiivit (vaihdettu 1:n ja 2:n nappulat).
Taulukot 1 ja 2 olivat aluksi molemmat tytetty 2:lla. Taulukossa arvo 1
tarkoittaa, ett tilanne johtaa voittoon, 0 hvin ja 2 ei kumpaakaan
(tilannetta ei ole onnistuttu kytkemn voittoon eik hvin).

Tmn jlkeen voitiin aloittaa tilanteiden lpikyminen, joka tapahtui
seuraavasti:

	A:
	
	Tutkitaan pelitaulukon ensimmist rivi (pelaaja 1:n tilanne)
 
	B:
		tarkastellaan pelaaja 1 tilannetta (esim. 17354)
	         jos _kaikki_ pelaaja 1 siirrot johtavat tappioon
		 niin merkataan tm tilanne kuuluvaksi luokkaan 1
		 taulukossa 2 eli kertomaan, ett pelaajalla 2 on
		 varma voitto tllaisessa tilanteessa. Vastaavasti
		 taulukkoon 1 tulee tmn tilanteen negatiivin
		 kohdalle 1.
		 		
		 Jos ei ole kyty viel kaikki rivej (2296) mennn
		 seuraavalle riville ja palataan kohtaan B.

	C:

	Tutkitaan pelitaulukon ensimmist rivi (pelaaja 1:n tilanne)

	D:
		tarkastellaan pelaaja 2 tilannetta (esim. 5863)
	         jos _joku_ pelaaja 2 siirroista johtaaa voittoon
		 niin merkataan tm tilanne kuuluvaksi luokkaan 0
		 taulukossa 1 eli kertomaan, ett pelaaja 1 on varma
		 hvij tllaisessa tilanteessa. Vastaavasti
		 taulukkoon 2 tulee tmn tilanteen negatiivin
		 kohdalle 0.		
		
		 Jos ei ole kyty viel kaikki rivej (2296) mennn
		 seuraavalle riville ja palataan kohtaan D.

		 Jos saatiin yksikin uusi tilanne (vaihessa B-D) luokiteltua
		 palataan kohtaan A.

Nin sain nopeasti tiedon siit, mihin eri tilanteet johtavat. Varmat
voitot ja tappiot tarkoittavat sit, miten ky jos molemmat pelaajat ovat
parhaita mahdollisia. Kun koneella on tieto mihin mikkin tilanne johtaa,
se voi pelata parhaalla mahdollisella pelitavalla. Tarkoittaen sit, ett
se voittaa aina kun on mahdollista ja hvi aina vain silloin, kun se on
vlttmtnt. Aloitustilanteesta et voi voittaa konetta vaikeimmalla
tasolla. Tarkastelussa ei ole huomioitu mahdollisia silmukoita, jotka
aiheuttavat 'tappiokuoppia', tilanteiden joukon, joista ei en pst
voittoon. Tllaisten lpikyminen olisi vaatinut hieman erilaisen rutiinin.

Menetelm on loppujen lopuksi hyvin yksinkertainen, vaikkei ehk selitys
sit ollutkaan. On olemassa toki muitakin tapoja tilanteiden lpikymiseksi
(peli voi tarkastella graafina) ja esim. kytetyss pelitaulukossa on 
arpeetonta tietoa, mutta nin lpikymisen toteuttaminen on nin
yksinkertaisempaa. Erottelin viel tilanteet neljn luokkaan:

	0 = Tilanteet, jotka johtavat vlittmn tappioon, 768 kpl
	1 = Tilanteet, jotka johtavat tappioon (ei vlitn), 238 kpl
	2 = Neutraalit tilanteet, 1261 kpl
	3 = Tilanteet, jotka johtavat voittoon (ei vlitn), 14 kpl
	4 = Tilanteet, jotka johtavat vlittmn voittoon, 15 kpl

Parhaimmalla vaikeusasteella valitaan aina tilanne, joka kuuluu suurimpaan
mahdolliseen luokkaan. Helpoimmilla vaikeusasteilla mukana on satunnaisuutta
ja eik esim. erotella luokkia 1 ja 2.


Lopuksi
-------

Kaikenlaiset kysymykset, kommentit yms. ovat tervetulleita

Internet osoitteeseen: Esa.Piirila@hut.fi

tai perinteisemmin:

	Esa Piiril
	Servin Maijan tie 6E 67
	02150 ESPOO

Hauskoja pelihetki!

EOF
