import PIL.Image import PIL.ImageDraw width=360 height=width padding=12 stoneSize=(width-2*padding)/18 yellow=(255,200,0) white=(255,255,255) black=(0,0,0) def createDiagram(board): img=PIL.Image.new("RGB",(width,height),yellow) canvas=PIL.ImageDraw.Draw(img) # grid for i in range(19): canvas.line((padding,padding+i*stoneSize,width-padding,padding+i*stoneSize),black,1) canvas.line((padding+i*stoneSize,padding,padding+i*stoneSize,height-padding),black,1) # stars radius=2 for r in range(3,19,6): for c in range(3,19,6): x=c*stoneSize+padding y=r*stoneSize+padding canvas.ellipse((x-radius,y-radius,x+radius,y+radius),black) # stones radius=stoneSize/2 for (r,row) in enumerate(board): for (c,color) in enumerate(row): if color=="X" or color=="O": x=c*stoneSize+padding y=r*stoneSize+padding canvas.ellipse((x-radius,y-radius,x+radius,y+radius),black if color=="X" else white) return img