У меня есть задание по информатике, где мне нужно написать функцию main()
, которая вызывает функцию drawChessboard()
, чтобы нарисовать шахматную доску 8x8, где пользователь может определить ширину и высоту доски.Мы изучаем функции и модули, и нам нужно использовать более одного модуля с несколькими функциями.Вот первый модуль, который у меня есть:
from chessboard import *
def main():
startX, startY = eval(input("Enter the starting coordinates (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
global startX, startY, width, height, spaceX, spaceY, xLocation, yLocation
def drawRectangle(): # Define draw rectangle function
turtle.penup()
turtle.goto(xLocation, yLocation)
turtle.pendown()
turtle.left(90)
turtle.begin_fill()
turtle.forward(spaceX)
turtle.left(90)
turtle.forward(spaceY)
turtle.left(90)
turtle.forward(spaceX)
turtle.left(90)
turtle.forward(spaceY)
turtle.end_fill()
def drawAllRectangles(startX, startY): # function that will draw all rectangles to make up chessboard
yLocation = startY
while yLocation <= (height - 2 * spaceY): # draw rectangles on rows 1, 3, 5, 7
global xLocation
xLocation = startX
while xLocation <= (width - 2 * spaceX):
drawRectangle()
xLocation += 2 * spaceX
yLocation += 2 * spaceY
turtle.penup()
turtle.goto(startX + spaceX, startY + spaceY)
turtle.pendown()
yLocation = startY + spaceY
while yLocation <= (height - spaceY): # draw rectangles on rows 2, 4, 6, 8
xLocation = startX + spaceX
while xLocation <= (width - spaceX):
drawRectangle()
xLocation += 2 * spaceX
yLocation += 2 * spaceY
def drawChessboard(startX, startY, width = 250, height = 250):
import turtle
turtle.showturtle() # Draw outside border for chessboard
turtle.speed(10)
turtle.penup()
turtle.goto(startX, startY)
turtle.pendown()
turtle.forward(width)
turtle.left(90)
turtle.forward(height)
turtle.left(90)
turtle.forward(width)
turtle.left(90)
turtle.forward(height)
drawAllRectangles(startX, startY)
turtle.done()
Когда я пытаюсь запустить первый модуль, он выдает ошибкуиз первого while
оператора drawAllRectangles()
, который говорит, что имя height
не определено.Я не знаю, как это исправить.Я попытался сделать все переменные глобальными, но это все равно дает мне тот же результат.Я посмотрел ошибку на этом сайте, но мне не повезло.Есть ли что-то, что я делаю не так?