Мне нужно разместить строки в каждой строке и столбце, чтобы они выглядели как доска
Это легко. Вместо установки цвета с помощью color()
, который устанавливает цвета pen и fill , вместо этого используйте fillcolor()
, который устанавливает только цвет fill , оставляя ручка цвет по умолчанию черный. Вам также нужно будет опустить перо во время рисования, но поднимать его после каждого ряда, пока оно возвращается к левому краю.
Мне нужно поместить значение из моего массива в середину блока
Этот вопрос сложнее, но в основном вам нужно определить listOfValues
как list
из list
из int
, где каждый int
равен нулю или единице, или некоторым другим. Затем во вложенном цикле выполните SomeValue = listOfValues[i][j]
перед проверкой его значения.
Если вы хотите написать число в блоке, я бы выделил отдельную маркер черепаху для записи чисел. И определите соответствующий шрифт.
Ниже я переделываю ваш код, где я реализую вышеупомянутое, а также пытаюсь правильно центрировать плату:
from turtle import Screen, Turtle
FONT_SIZE = 18
FONT = ('Arial', FONT_SIZE, 'normal')
listOfValues = [
[0, 1, 1, 2, 1, 1, 0],
[1, 2, 1, 1, 0, 1, 1],
[1, 1, 0, 1, 1, 2, 1],
[2, 1, 1, 0, 1, 1, 1],
[1, 2, 1, 1, 0, 1, 2],
[1, 1, 1, 1, 1, 1, 1],
[1, 0, 1, 2, 1, 0, 1]
]
def square(size, color):
''' draw and fill one square '''
greg.fillcolor(color)
greg.pendown()
greg.begin_fill()
for _ in range(4):
greg.forward(size)
greg.left(90)
greg.end_fill()
greg.penup()
greg.forward(size)
def chessboard(size):
''' draw the whole chessboard '''
side = len(listOfValues)
greg.penup()
greg.goto(-size * side/2, size * side/2)
for i in range(side):
for j in range(side):
someValue = listOfValues[i][j]
text, color = ('black', 'white') if someValue == 1 else ('white', 'black')
square(size, color)
marker.goto(greg.xcor() - size/2, greg.ycor() + size/2 - FONT_SIZE/2)
marker.pencolor(text)
marker.write(someValue, align='center', font=FONT)
greg.goto(-size * side/2, size * side/2 - size * (i + 1))
# set screen characteristics
screen = Screen()
screen.title('Chessboard')
screen.bgcolor('lightblue')
# set turtle characteristics
greg = Turtle()
greg.hideturtle()
# set marker characteristics
marker = Turtle()
marker.penup()
marker.hideturtle()
screen.tracer(False) # because I have no patience
chessboard(50)
screen.tracer(True)
screen.mainloop()
![enter image description here](https://i.stack.imgur.com/uEdZS.png)