Ero sivun ”Python 2/Wikishakkisivu” versioiden välillä

Poistettu sisältö Lisätty sisältö
Raimondo (keskustelu | muokkaukset)
Raimondo (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Rivi 511:
 
====Ratkaisu====
Tämä on ensimmäinen esimerkkiratkaisun karvalakkiversio. Tästä puuttuu vielä mm. parametrivälityksen toteutus. Ohjelma lukee nyt shakkilautamallineen tiedostosta asema0.txt suorittaa avauksen e2 e4 ja tallettaa muokatun aseman tiedostoon asema1.txt
 
;Ohjelmakoodi:
 
<source lang="Python">
# -*- coding: cp1252 -*-
# Funktio rivi(rno)
def rivi(rno):
for n in range(len(uusi_asema)):
if uusi_asema[n] != rno:
pass
else:
print uusi_asema[n],\
uusi_asema[n+3:n+5],\
uusi_asema[n+6:n+8],\
uusi_asema[n+9:n+11],\
uusi_asema[n+12:n+14],\
uusi_asema[n+15:n+17],\
uusi_asema[n+18:n+20],\
uusi_asema[n+21:n+23],\
uusi_asema[n+24:n+26]
 
# Avataan tiedosto asema0.txt lukemista varten
f_peliaema = open('asema0.txt', 'r')
# Luetaan koko tiedosto merkkijonoksi s_peliasema
s_peliasema = f_peliaema.read()
# Suljetaan tiedosto f_peliaema - tiedosto voidaan sulkea heti kun se on luettu
f_peliaema.close()
# Tulostetaan merkkijono s_peliasema
print " \n Alkuasaema \n"
print(s_peliasema)
 
#-----------------------------------------------
# suoritetaan avaussiirto e2-e4 ja tulostetaan uusi asema
#------------------------------------------------
 
uusi_asema = s_peliasema[0:167] \
+ s_peliasema[229:232] \
+ s_peliasema[170:229] \
+ ' ' \
+ s_peliasema[231:310]
#s_peliasema[168:170] = s_peliasema[229:232] # asema['e4'] = asema['e2']
#s_peliasema[230:232] = ' ' # asema['e2'] = ' '
 
print " \n Asema avauksen e2-e4 jälkeen \n"
print(uusi_asema)
 
#--------------------------------------------------------
# Talletaan muokattu tiedosto takaisin uudella nimellä
#--------------------------------------------------------
 
tiedosto = open('asema1.txt', 'w') # avataan kirjoitusta varten
tiedosto.write(uusi_asema) # kirjoitetaan teksti tiedostoon
tiedosto.close() # suljetaan tiedosto
</source>
 
;Testituloste:
 
>>>
Alkuasaema
 
{{Šakkilauta|=
|
|
|=
8 |rd|nd|bd|qd|kd|bd|nd|rd|=
7 |pd|pd|pd|pd|pd|pd|pd|pd|=
6 | | | | | | | | |=
5 | | | | | | | | |=
4 | | | | | | | | |=
3 | | | | | | | | |=
2 |pl|pl|pl|pl|pl|pl|pl|pl|=
1 |rl|nl|bl|ql|kl|bl|nl|rl|=
a b c d e f g h
|
}}
 
Asema avauksen e2-e4 jälkeen
 
{{Šakkilauta|=
|
|
|=
8 |rd|nd|bd|qd|kd|bd|nd|rd|=
7 |pd|pd|pd|pd|pd|pd|pd|pd|=
6 | | | | | | | | |=
5 | | | | | | | | |=
4 | | | | |pl| | | |=
3 | | | | | | | | |=
2 |pl|pl|pl|pl| |pl|pl|pl|=
1 |rl|nl|bl|ql|kl|bl|nl|rl|=
a b c d e f g h
|
}}
>>>
 
===Aiheesta muualla===