Я должен нарисовать игру на шахматной доске с использованием Python. Но как только я ввожу ввод, который запрашивает начальную позицию, ширину и высоту, он рисует черные прямоугольники вне основного прямоугольника шахматной доски. Сетка из 8 х 8 прямоугольников должна быть правильно нарисована чередующимися черными / белыми прямоугольниками. Что я делаю неправильно? Мой первый модуль такой:
from chessboard import *
def main():
startX, startY = eval(input("Enter at start position (x, y): "))
width = input("Enter the width: ")
height = input("Enter the height: ")
spaceX = eval(width) / 8
spaceY = eval(height) / 8
def variables():
global startX, startY, width, height, spaceX, spaceY, xLocation, yLocation
if width == "" and height == "":
drawChessboard(startX, startY)
elif height == "":
drawChessboard(startX, startY, width=eval(width))
elif width == "":
drawChessboard(startX, startY, height=eval(height))
else:
drawChessboard(startX, startY, eval(width), eval(height))
main()
А это мой второй модуль chessboard.py
import turtle
def drawRectangle(xLocation, yLocation, spaceX, spaceY):
turtle.penup()
turtle.goto(xLocation, yLocation)
turtle.pendown()
turtle.begin_fill()
for _ in range(2):
turtle.forward(spaceX)
turtle.left(90)
turtle.forward(spaceY)
turtle.left(90)
turtle.end_fill()
def drawAllRectangles(startX, startY, width, height):
spaceX = width / 8
spaceY = height / 8
yLocation = startY
while yLocation <= (height - 2 * spaceY):
xLocation = startX
while xLocation <= (width - 2 * spaceX):
drawRectangle(xLocation, yLocation, spaceX, spaceY)
xLocation += 2 * spaceX
yLocation += 2 * spaceY
turtle.penup()
turtle.goto(startX + spaceX, startY + spaceY)
turtle.pendown()
yLocation = startY + spaceY
while yLocation <= (height - spaceY):
xLocation = startX + spaceX
while xLocation <= (width - spaceX):
drawRectangle(xLocation, yLocation, spaceX, spaceY)
xLocation += 2 * spaceX
yLocation += 2 * spaceY
def drawChessboard(startX, startY, width=250, height=250):
turtle.penup()
turtle.goto(startX, startY)
turtle.pendown()
for _ in range(2):
turtle.forward(width)
turtle.left(90)
turtle.forward(height)
turtle.left(90)
drawAllRectangles(startX, startY, width, height)
def main():
startX, startY = eval(input("Enter at start position (x, y): "))
width = input("Enter the width: ")
height = input("Enter the height: ")
turtle.speed('fastest')
if width == "" and height == "":
drawChessboard(startX, startY)
elif height == "":
drawChessboard(startX, startY, width=int(width))
elif width == "":
drawChessboard(startX, startY, height=int(height))
else:
drawChessboard(startX, startY, int(width), int(height))
turtle.done()
main()
Я не знаю, в чем проблема и почему она рисует прямоугольникивне основного прямоугольника шахматной доски.