Files
@ 68719ba74601
Branch filter:
Location: OneEye/exp/diagram.py - annotation
68719ba74601
940 B
text/x-python
position detection, refactored out color quantization
6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f 6180b3bd7f3f | 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
|