Ero sivun ”Python 2/Wikishakkisivu” versioiden välillä
Poistettu sisältö Lisätty sisältö
Rivi 109:
==== Ensimmäisen vaiheen ratkaisu ====
Seuraava ohjelma lukee kommentteja sisältävän shakkilautamallineen parametrinä annetusta syötetiedostosta
Toteutus poikkeaa hiukan edellä kuvatusta sanallisesta ideointivaiheen kuvauksesta.
;Koodi:
Rivi 115 ⟶ 117:
<source lang="Python">
# -*- coding: cp1252 -*-
def shakkisiirto (asema0, asema1, siirto='ei siirtoa'):
# -*- coding: cp1252 -*-
# Avataan tiedosto asema0.txt lukemista varten
f_syote = open(asema0, 'r')
# Luetaan koko tiedosto merkkijonoksi s_peliasema
syote = f_syote.read()
# Suljetaan tiedosto f_peliaema - tiedosto voidaan sulkea heti kun se on luettu
f_syote.close()
# Tulostetaan merkkijono s_peliasema
print " \n ==== Syotetiedosto ==== \n"
print(syote)
#--------------------------------------------------------
print(' ==== Siirto ==== \n')
print(siirto)
#--------------------------------------------------------
f_tulos = open(asema1, 'w') # Tyhjennetaan
f_tulos.close() # tulostiedosto.
f_tulos = open(asema1, 'a') # Avataan kirjoitusta varten.
f_rivi = open(asema0, 'r') # Avataan lukemista varten.
rivi = f_rivi.readline() # Luetaan ja tulostetaan
f_tulos.write(rivi) #
for j in range(0,3): #
rivi = f_rivi.readline()
for i in range(len(rivi)):
if rivi[i]=='|':
rivi=rivi[i:]
break
f_tulos.write(rivi)
lauta = '87654321' # Siistitaan laudan rivit.
for j in range(len(lauta)):
rivi = f_rivi.readline()
for i in range(len(rivi)):
if rivi[i]=='|':
rivi=rivi[i:]
break
f_tulos.write(rivi)
rivi = f_rivi.readline() # poistetaan sarakekommentit
rivi = f_rivi.readline() # siistitaan alaotsikkorivi
for i in range(len(rivi)):
if rivi[i]=='|':
Rivi 148 ⟶ 170:
break
f_tulos.write(rivi)
rivi = f_rivi.readline() # siistitaan loppurivi
for i in range(len(rivi)):
if rivi[i]=='
rivi=rivi[i:]
break
f_tulos.write(rivi)
f_rivi.close() # suljetaan tiedosto
f_tulos.close() # suljetaan tiedosto
#-----------------------------------------------------------
# Avataan tiedosto asema1.txt lukemista varten
f_tulos = open(
# Luetaan koko tiedosto merkkijonoksi s_peliasema
tulos = f_tulos.read()
# Suljetaan tiedosto f_peliaema - tiedosto voidaan sulkea heti kun se on luettu
f_tulos.close()
print " \n ==== Tulostiedosto ==== \n"
print(tulos)
</source>
;Testikutsu:
Esimerkiksi seuraavalla testikutsulla
<source lang="Python">
# -*- coding: cp1252 -*-
from shakkibotti import shakkisiirto
shakkisiirto('asema0.txt', 'asema1.txt', '1.e2-e4')
</source>
saadaan seuraava testituloste
;Testitulosteet:
<source lang="Python">
>>>
====
{{Šakkilauta|=
Rivi 212 ⟶ 226:
}}
==== Siirto ====
1.e2-e4
====
{{Šakkilauta|=
Rivi 231 ⟶ 248:
>>>
</source>
==== Toisen vaiheen ratkaisu ====
|