The classic game of chess
from kandinsky import fill_rect as rect, set_pixel W,H = 320,222 SQUARES = 8 SSIZE = int(H/SQUARES-1) print(SSIZE) XOFFSET = int((W-SQUARES*SSIZE)/2) YOFFSET = int((H-SQUARES*SSIZE)/2) BORDER = 2 rect(0,0,W,H,"black") def render(x,y,piece,player): x=int(x) y=int(y) SPRITES = {"pawn":["040005000600070008000301040105010601070108010901030204020502060207020802090203030403050306030703080309030304040405040604070408040904040505050605070508050306040605060606070608060906020703070407050706070707080709071007030804080508060807080808090804090509060907090809041005100610071008100311041105110611071108110911011202120312041205120612071208120912101211120013011302130313041305130613071308130913101311131213001401140214031404140514061407140814091410141114121401150215031504150515061507150815091510151115",13,16], "king":["01000200040006000700010102010301040105010601070101020202030204020502060207020203030304030503060303040404050402050305040505050605010602060306040605060606070601070207030704070507060707070208030804080508060802090309040905090609031004100510031104110511021203120412051206120113021303130413051306130713001401140214031404140514061407140814001501150215031504150515061507150815",9,19], "horse":["040005000301040105010601070103020402050206020702080202030303040305030603070308030903020403040404050406040704080409041004010502050305040505050605070508050905100511050006010602060306040605060606070608060906100611060007010702070307040705070607070708070907100711070108020803080508060807080808090810081108040905090609070908090909100903100410051006100710081009101010031104110511061107110811091110110212031204120512061207120812091210121112011302130313041305130613071308130913101311131213011402140314041405140614071408140914101411141214011502150315041505150615071508150915101511151215",13,16]} draw=SPRITES[piece] for i in range(0,len(draw[0]),4): pixel=draw[0][i:i+4] pixel_x=x-int(draw[1]/2)+int(pixel[:2]) pixel_y=y-int(draw[2]/2)+int(pixel[2:4]) set_pixel(pixel_x,pixel_y,"red" if player == 1 else "blue") def draw_board(): rect(XOFFSET-BORDER,YOFFSET-BORDER,W-2*(XOFFSET-BORDER),H-2*(YOFFSET - BORDER),"white") for y in range (SQUARES): for x in range (SQUARES): if (x+y) % 2 == 0: rect(XOFFSET+x*SSIZE,YOFFSET+y*SSIZE,SSIZE,SSIZE,"grey") def draw_pieces(pieces): for piece in pieces: render(XOFFSET + piece.x * SSIZE + SSIZE/2,YOFFSET + piece.y * SSIZE + SSIZE/2, piece.piece, piece.player) # rect(XOFFSET + piece.x * SSIZE,YOFFSET + piece.y * SSIZE,15,15,"black") class Piece(): def __init__(self,piece,player,x,y,): self.piece = piece self.player = player self.x = x self.y = y pieces = [Piece("pawn",1,i,1) for i in range(8)] + [Piece("pawn",2,i,6) for i in range(8)] + [Piece("king",2,5,7)] draw_board() draw_pieces(pieces)