#!/usr/bin/env python# Plot a PGN game using python-chess and ImageMagick, highlighting last movesimportosimportchess.pgnimportchess.svgpgn=open('game.pgn')game=chess.pgn.read_game(pgn)game=game.next()board=game.board()ifinput("Whose point of view? ('b' for black, nothing for white)\n")=='b':pov=chess.BLACKelse:pov=chess.WHITEdelay=input("Delay per move, in centiseconds? (default is 150)\n")ifdelay=='':delay="150"start=input("Starting delay? (default is 1)\n")ifstart=='':start="1"end=input("End delay? (default is 3)\n")ifend=='':end="3"out=input("Output file name? ('.gif' is suffixed automatically, default is 'pgn.py')\n")ifout=='':out="pgn_py"defsvg(i):s=chess.svg.board(board,lastmove=board.peek(),orientation=pov,coordinates=False,size=800)f1="pgn_py_temp_%04u.svg"%if2="pgn_py_temp_%04u.png"%iwithopen(f1,'w')asf:f.write(s)os.system("magick %s%s"%(f1,f2))os.system("rm %s"%f1)i=0#try to find it!lm=board.peek()whilei<int(start):s=chess.svg.board(board,lastmove=lm,orientation=pov,coordinates=False,size=800)f1="pgn_py_temp_%04u.svg"%if2="pgn_py_temp_%04u.png"%iwithopen(f1,'w')asf:f.write(s)os.system("magick %s%s"%(f1,f2))os.system("rm %s"%f1)i+=1formingame.mainline_moves():board.push(m)svg(i)i+=1# pause animation at the end:forjinrange(int(end)):svg(i)i+=1# create animationos.system("magick -delay "+delay+" pgn_py_temp_*.png -loop 0 "+out+".gif")#please don't run this script if you use this naming scheme for family photosos.system("rm pgn_py_temp_*")# ~/ Input \~# Whose point of view? ('b' for black, nothing for white)## Delay per move, in centiseconds? (default is 150)# # Starting delay? (default is 1)# 10# End delay? (default is 3)## Output file name? ('.gif' is suffixed automatically, default is 'pgn_py')#
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.